AGB  ·  Datenschutz  ·  Impressum  







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

zlibex exception beim entpacken

Ein Thema von ulilüding · begonnen am 20. Jun 2012 · letzter Beitrag vom 23. Jun 2012
Antwort Antwort
ulilüding

Registriert seit: 23. Okt 2010
Ort: Berlin
33 Beiträge
 
Delphi 5 Professional
 
#1

zlibex exception beim entpacken

  Alt 20. Jun 2012, 13:27
Hi Leute,

ich möchte gerne eine GZIP gepackte Datei (von einem Java-Programm (minecraft) erzeugt) entpacken. Die kleine Bastelarbeit sieht derzeit so aus:

(Eigentlicher Dienstleister

function TForm1.entGZip(const gzin: TStream): string;
var
dcStr: TZDecompressionStream;
buf: array[0..1000] of char;
cntr: integer;
begin
dcStr:= TZDecompressionStream.Create(gzin);
repeat
cntr:= dcStr.read(buf, 1000);
result:= result + buf;
until cntr < 1000;
dcStr.free
end;

(Aufruf in einer procedure

fils:=TFileStream.create(src, fmOpenRead);
mem.text:=entGZip(fils);
fils.free

Die ZLibEx wir dafür benutzt. Die wirft dann die Exception:

raise EZDecompressionError.Create(code);

mit der Nachricht "data error" (toller Informationsgehalt). Scheint eine größere Angelegenheit zu sein, denn das Fehlerfenster von Delphi ist zickig (wird beim Verschieben nicht korrekt neu gezeichnet resp. der alte Inhalt bleibt bestehen). Hat einer eine Idee, warum?

Danke, LG Uli
eben der mit space
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
460 Beiträge
 
Delphi XE2 Enterprise
 
#2

AW: zlibex exception beim entpacken

  Alt 20. Jun 2012, 13:47
mit welcher Delphi Version

muss das array of char nicht ansichar sein?

buf: array[0..1000] of char;
buf: array[0..1000] of ansichar;
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
ulilüding

Registriert seit: 23. Okt 2010
Ort: Berlin
33 Beiträge
 
Delphi 5 Professional
 
#3

AW: zlibex exception beim entpacken

  Alt 21. Jun 2012, 10:31
sorry für meine Schlampigkeit: Delphi 5
daher sollte char auch gehen - hab's gerade mit ansichar gechecked: gleicher Fehler. Danke dennoch
LGU
eben der mit space
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#4

AW: zlibex exception beim entpacken

  Alt 21. Jun 2012, 11:41
zlib ist nicht gzip. Bei neueren Delphis scheint's ja eine Unit ZLibExGZ zu geben. Hilft Dir mit Delphi 5 der Hinweis mit den zwei Bytes aus diesem alten Beitrag weiter http://www.delphipraxis.net/1103831-post2.html?
  Mit Zitat antworten Zitat
ulilüding

Registriert seit: 23. Okt 2010
Ort: Berlin
33 Beiträge
 
Delphi 5 Professional
 
#5

AW: zlibex exception beim entpacken

  Alt 23. Jun 2012, 13:08
Hab' dem komprimierten stream "fils" die beiden bytes $78 und $9C vorangestellt (der stream ist damm 2 byte größer), dann entGZip aufgerufen und diesen verlängerten stream übergeben, aber der Fehler bleibt. Trotzdem habe ich das "Bauchgefühl", daß die Richtung nicht schlecht ist. Momentan steht im Byte an position 0 der hexadezimalwert $78, an der 1 die $9C, ab der position 2 folgt der originäre stream. Stimmt DA vielleicht was nicht? oder irgendeine checksumme?

LGU
eben der mit space
  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 13:08 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