好的,所以我(非常)最近开始玩 lazaruz/free pascal,我有点坚持使用 TMemoryStream 和它的流媒体来阅读文件。
我正在尝试编写一个简单的 base64 编码器,它可以编码文本字符串或文件(如图像和 WAV),然后在 html 和 javascript 中使用。
以下代码编译得很好,但我EReadError Illegal stream image
在尝试加载文件时得到了。我将包含仅工作字符串的过程以供参考:
procedure TForm1.TextStringChange(Sender: TObject);
begin
Memo1.Lines.Text := EncodeStringBase64(TextString.Text);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Lines.Text := '';
Form1.BorderIcons := [biSystemMenu,biMinimize];
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
filename := OpenDialog1.Filename;
stream := TMemoryStream.Create;
try
StrStream := TStringStream.Create(s);
try
stream.LoadFromFile(filename);
stream.Seek(0, soFromBeginning);
ObjectBinaryToText(stream, StrStream);
StrStream.Seek(0, soFromBeginning);
Memo1.Lines.Text := EncodeStringBase64(StrStream.DataString);
finally
StrStream.Free;
end;
finally
stream.Free;
end;
end;
end;
谁能帮我吗?