gpt4 book ai didi

delphi - WriteBinaryStream 压缩成 INI 文件?

转载 作者:行者123 更新时间:2023-12-04 09:15:59 26 4
gpt4 key购买 nike

在 Delphi 10.4 中,我尝试保存有效的 TPicture 压缩 到 INI 文件,尝试复制 ZLibCompressDecompress example从文档:

procedure TForm1.SavePictureToIniFile(const APicture: TPicture);
// https://stackoverflow.com/questions/63216011/tinifile-writebinarystream-creates-exception
var
LInput: TMemoryStream;
LOutput: TMemoryStream;
MyIni: System.IniFiles.TMemIniFile;
ThisFile: string;
LZip: TZCompressionStream;
begin
if FileSaveDialog1.Execute then
ThisFile := FileSaveDialog1.FileName
else EXIT;

LInput := TMemoryStream.Create;
LOutput := TMemoryStream.Create;
LZip := TZCompressionStream.Create(clDefault, LOutput);
try
APicture.SaveToStream(LInput);
LInput.Position := 0;
//LOutput.Position := 0;
LZip.CopyFrom(LInput, LInput.Size);

MyIni := TMemIniFile.Create(ThisFile);
try
MyIni.WriteBinaryStream('Custom', 'IMG', LOutput);
MyIni.UpdateFile;
finally
MyIni.Free;
end;
finally
LInput.Free;
LOutput.Free;
LZip.Free;
end;
end;
但是流没有保存在 INI 文件中。生成的 INI 文件仅包含以下几行:

[Custom]
IMG=


那么如何将压缩流保存在 INI 文件中呢?

最佳答案

您需要设置LOutput.Position := 0LZip.CopyFrom行,即紧接在之前

MyIni.WriteBinaryStream('Custom', 'IMG', LOutput);

关于delphi - WriteBinaryStream 压缩成 INI 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63217195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com