Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

AW: RtlCompressBuffer alternative gesucht!

  Alt 17. Jan 2018, 17:14
Wenn du einfach nur "irgendwas komprimieren" möchtest hat mir persönlich immer die mitgelieferte Unit System.Zip gereicht. Handelsübliche ZIP-Kompression in Dateien oder in den Speicher, Dateien rein und raus, alles ganz einfach.

Beispiel:

Delphi-Quellcode:
interface uses
   System.Classes,
   System.SysUtils,
   System.Zip,
   System.IoUtils;

procedure compressStuff();
const
   exampleData: TBytes = [1,2,3];
var
   inputStream: TStream;
   zipFile: TZipFile;
   outputStream: TBytesStream;
begin
   inputStream := nil; zipFile := nil; outputStream := nil;
   try
      inputStream := TBytesStream.Create(exampleData);
      outputStream := TBytesStream.Create();

      zipFile := TZipFile.Create();
      zipFile.Open(outputStream, TZipMode.zmWrite);
      zipFile.Add(inputStream, 'compressedInput.dat');

      TFile.WriteAllBytes('x:\myZipfile.zip', outputStream.Bytes);
   finally
      inputStream.Free(); zipFile.Free(); outputStream.Free();
   end;
end;
  Mit Zitat antworten Zitat