Schau dir mal
Turbopower Abbrevia an.
Die Kompresskomponente kann auch Stream komprimieren.
Einfach folgenden Code entsprechend anpassen. Für die Compression mußt du eine entsprechende Funktion schreiben
Code:
procedure DeCompressZLib(SourceFile, DestinationFile: String);
var
StreamIn: TStream;
StreamOut: TStream;
GzHelp: TAbZLStreamHelper;
begin
if FileExists(SourceFile) then
begin
StreamIn := TFileStream.Create(SourceFile, fmOpenRead);
DeleteFile(DestinationFile);
StreamOut := TFileStream.Create(DestinationFile, fmCreate);
GzHelp := TAbZLStreamHelper.Create(StreamIn);
try
GzHelp.ReadHeader;
GzHelp.ExtractItemData(StreamOut);
GzHelp.ReadTail;
finally
GzHelp.Free;
StreamIn.Free;
StreamOut.Free;
end;
end;
end;