Einzelnen Beitrag anzeigen

MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#1

XE2: gzip-Datei mittels System.ZLib dekomprimieren

  Alt 30. Dez 2011, 10:18
Ich möchte gern eine gzip-komprimierte Datei mithilfe der XE2-Bordmittel (Unit "System.ZLib") dekomprimieren. Leider funktioniert das nicht, ich erhalte immer einen "data error" beim Aufruf von "ZDecompressStr" und weiß nicht, was ich falsch mache. Die gz-Datei ist definitiv in Ordnung, ich kann sie problemlos mittels 7zip dekomprimieren. Hier der Code, den ich verwende sowie im Anhang das komplette Testprojekt. Vielleicht kann es ja mal jemand testen und sagen, was ich falsch mache. Mit "ZDecompress" und "ZDecompressStream" klappt es genauso wenig.
Delphi-Quellcode:
uses
  System.ZLib;

procedure TForm1.LoadButtonClick(Sender: TObject);
var
  InStream: TMemoryStream;
  CompressedFile: TBytes;
  UncompressedFile: string;
begin
  if OpenDialog1.Execute then
  begin
    InStream := TMemoryStream.Create;
    try
      InStream.LoadFromFile(OpenDialog1.FileName);
      InStream.Position := 0;
      SetLength(CompressedFile, InStream.Size);
      InStream.Read(CompressedFile[0], InStream.Size);
      UncompressedFile := ZDecompressStr(CompressedFile);
      UncompressedMemo.Text := UncompressedFile;
    finally
      InStream.Free;
    end;
  end;
end;
Angehängte Dateien
Dateityp: zip GZipDecompress.zip (90,8 KB, 15x aufgerufen)
  Mit Zitat antworten Zitat