Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#18

AW: XE2: gzip-Datei mittels System.ZLib dekomprimieren

  Alt 13. Sep 2012, 16:31
15+32 = 47

Nja, die ZLib ist nur für den "reinen" domprimierten Datenstream,
wärend GZip ein Dateiformat ist, welches unter Anderem noch einen Header (Zusatzdaten) enthält und dieser ist quasi zufällig 47 Byte groß.
Um nun GZip mit ZLib entpacken zu können, muß man diesen Header überspringen.

- Das kann man entweder mit einem zufällig stimmendem konstanten Index machen (was nicht immer stimmen muß),
- oder man interpretiert den Header und sucht sich dann dementsprechend die Position des Datenstroms.

Wobei man im Header noch so Dinge findet, wie den Dateinamen der gepackten Datei, einer CRC32-Checksumme, einem Timestamp/Datum
und vorallem womit wirklich gepackt wurde, denn es muß nicht immer per ZLib entpackbar sein.
www.onicos.com/staff/iz/formats/gzip.html
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat