AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

GZip-Stream nach Stream entpacken

Ein Thema von Reinhold Nau · begonnen am 30. Mai 2011 · letzter Beitrag vom 1. Jun 2011
Antwort Antwort
Reinhold Nau

Registriert seit: 27. Feb 2009
9 Beiträge
 
Delphi 2007 Professional
 
#1

GZip-Stream nach Stream entpacken

  Alt 30. Mai 2011, 22:33
hallo,
ich bin nicht der erste mit dieser Frage, aber eine Antwort habe ich nirgendwo gefunden..
Ich habe aus einem http-get eine gzip-Datei (Icon), die ich entpackt brauche (aber nicht in einer Datei,
sondern in einem Stream).
ZLib: was auch immer ich versuche, der Read(Buffer) bringt mir eine TCompressionException mit der aussagekräftigen
Zusatzinformation 'Fehler'. Offenbar packt Zlib nur aus, was es selbst eingepackt hat ?
Abbrevia: ich finde in den GZip-KLassen nur Datei-/Archivbezogene Methoden.
Für Zip gibts ja da ein schickes Inflate(Stream, Stream), aber für gz ?

Weiß jemand Rat ?
Danke schonmal
Reinhold
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#2

AW: GZip-Stream nach Stream entpacken

  Alt 30. Mai 2011, 22:38
Das geht auch mit ZLib. Du musst den Daten für den Decomprssionsstream nur 2 Kennbytes voranstellen. Die sind von Delphi5 - 2007 gleich geblieben. Muss nur grad suchen, welche zwei Bytes das waren.

€: Hex-Wert 78 9C

Also bei den komprimierte Daten voranstellen (z.B. memoryStream, dann übergeben)

Siehe dazu auch den Thread

Geändert von Satty67 (30. Mai 2011 um 22:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: GZip-Stream nach Stream entpacken

  Alt 30. Mai 2011, 22:42
Es gibt in Abbrevia eine Methode ExtractToStream.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#4

AW: GZip-Stream nach Stream entpacken

  Alt 30. Mai 2011, 22:52
Wo ich den alten Thread nochmal durchlese, hatte damals auch die angesprochenen "echten" ZLib Units runter geladen. ZLibEx/ZLibExApi/ZLibExGZ etc. (die liegen hier im Projektordner mit drin)

Weis aber nimmer, ob die das Problem gelöst haben, der Name der 3. Unit lässt aber drauf schliessen.

Geändert von Satty67 (30. Mai 2011 um 22:54 Uhr)
  Mit Zitat antworten Zitat
Reinhold Nau

Registriert seit: 27. Feb 2009
9 Beiträge
 
Delphi 2007 Professional
 
#5

AW: GZip-Stream nach Stream entpacken

  Alt 1. Jun 2011, 17:55
@Satty67:
danke, das hat geholfen
Ich habe nochmal ein bisschen <Jugend forscht> betrieben:
Die ZLib in D2007 kann definitiv kein GZip.
Ich habe mir die 'richtige' (V1.2.5) geholt, damit geht das (ZLibExGZ, wie Du schon erwähnt hast). Juhu.
Die beiden Magic Bytes sind korrekt, helfen aber auch nicht bei GZip.
Also, danke nochmal für die Tipps.

@Union:
Tja, ExtractToStream finde ich in Abbrevia nur bei Zip/Arc..
In GZip gibt's ein ExtractItemToStreamAt, das erwartet aber irgendeine Archiv-Struktur
(soweit ich das aus dem Code erkennen konnte).

Gruß
Reinhold

-----------------------------------------------------------------------------
21 ist nur die halbe Wahrheit
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz