![]() |
gzip entpacken
Hi
Ich bekomme nach eine /Get Befehl mit Gzip gepackte Daten zurück. Meine Frage wie bekomme ich die in einen String? Und noch eine Frage Kann man tstream variablen in strings umwandeln?? MFG |
Re: gzip entpacken
GZip-Dateien werden mit der ZLib verarbeitet (eine nicht unbedingt gute / schnelle Implementation ist bei Delphi dabei). TStreams stellen eine Datei o. ä. dar, um einen String zu erhalten, einfach aus dem Stream lesen(Read).
|
Re: gzip entpacken
Könntest du mir das vielleicht an einem Beispiel zeigen(gzip entpacken)??
Bin nicht so bewandert bei Delphi. |
Re: gzip entpacken
Wenn du die komprimeirten Daten in einem Stream hast:
Delphi-Quellcode:
Is' aber untested.
uses ..., ZLib;
{...} function GZipStreamToString(const input: TStream): string; var str: TDecompressionStream; buffer: array[0..2000] of char; count: Longint; begin str:= TDecompressionStream.Create(input); repeat count:= str.Read(buffer, 2000); result:= result + buffer; until count < 2000; str.Free end; /edit: Code in eine Funktion gepackt |
Re: gzip entpacken
Danke, werds mal testen.
|
Re: gzip entpacken
Zitat:
![]() |
Re: gzip entpacken
Was hat denn das in der Internetsparte verloren? Verschoben.
|
Re: gzip entpacken
Also, ich hab das jetzt zum laufen gebracht aber es gibt mir immer nue sowas zurück:
wۑf MFG |
Re: gzip entpacken
Sicher das du 'ne HTML- oder Textdatei zurückkriegst? Bei Bildern sollte man nicht über einen String gehen, sondern einen TMemorystream + LoadFormStream nehmen.
|
Re: gzip entpacken
Ich bekomme auf jeden Fall eine HTML Datei zurück!!!
So schaut das im Moment bei mir aus:
Delphi-Quellcode:
Vielleicht findet ja jemand nen Fehler. Hab die Heise Seite einfach mal als beispiel genommen.
procedure TForm1.Button1Click(Sender: TObject);
var responseStream:Tfilestream; begin idhttp1.request.AcceptEncoding:='gzip'; responseStream := TFileStream.Create(edit1.text, fmCreate); idhttp1.get('http://www.heise.de/newsticker/meldung/64197',responseStream); edit2.text:=GZipStreamToString(responseStream); end; function tform1.GZipStreamToString(const input: TStream): string; var str: TDecompressionStream; buffer: array[0..2000] of char; count: Longint; begin str:= TDecompressionStream.Create(input); repeat count:= str.Read(buffer, 2000); result:= result + buffer; until count < 2000; str.Free end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz