17.01.2014, 07:31
|
Модератор
|
|
Регистрация: 17.04.2008
Сообщения: 8,024
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
|
|
Да, вот так работает:
Код:
uses
ZLib;
procedure TForm1.Button1Click(Sender: TObject);
var
AStream : TFileStream;
AZLib : TCompressionStream;
AMemStream : TMemoryStream;
ALen : Int64;
begin
AStream := TFileStream.Create('c:\test.z',fmCreate);
AMemStream := TMemoryStream.Create;
AZLib := TCompressionStream.Create(clMax,AStream);
Try
Memo1.Lines.SaveToStream(AMemStream);
AMemStream.Seek(0,0);
ALen := AMemStream.Size;
AZLib.WriteBuffer(ALen,SizeOf(Int64));
AZLib.CopyFrom(AMemStream,ALen);
Finally
AZLib.Free;
AStream.Free;
End;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
AZLib : TDecompressionStream;
AStream : TFileStream;
AMemStream : TMemoryStream;
ALen : Int64;
begin
AStream := TFileStream.Create('c:\test.z',fmOpenRead);
AZLib := TDecompressionStream.Create(AStream);
AMemStream := TMemoryStream.Create;
Try
AZLib.ReadBuffer(ALen,SizeOf(Int64));
AMemStream.CopyFrom(AZLib,ALen);
AMemStream.Seek(0,0);
Memo1.Lines.LoadFromStream(AMemStream);
Finally
AMemStream.Free;
AZLib.Free;
AStream.Free;
End;
end;
|