Entwickler-Ecke
Dateizugriff - ZLIB -> TDecompressionStream.Read
Mike_C - Mo 28.10.02 14:02
Titel: ZLIB -> TDecompressionStream.Read
Wie kann ich einen Stream, den ich mit einem TCompressionStream aus der Unit ZLIB komprimiert habe wider dekomprimieren?
Es gibt einen TDecompressionstream mit eine Methode Read; nur wenn ich die verwende, bekomme ich keinen gescheiten Output, besser gesagt ich bekomme immer das gleich Ergebnis, egal was ich reinschreibe.
Hat jemand damit erfahrung?
Mike_C - Mo 28.10.02 15:32
Meine Lesen-Routine sieht bisher so aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| procedure TForm1.btnUnZIPClick(Sender: TObject); var ZIPStream: TDecompressionStream; SrcStream: TMemoryStream; Buffer: string[200]; s: string;
size : integer; begin SrcStream := TMemoryStream.Create; SrcStream.LoadFromFile(ExtractFilePath(Application.Exename)+'Test.file'); ZIPStream := TDecompressionStream.Create(SrcStream);
Size := SrcStream.Size;
ZIPStream.Seek(0,soFromBeginning);
s := ''; while ZIPStream.Position < ZIPStream.Size do begin Buffer := ''; ZIPStream.ReadBuffer(Buffer,200); s := s+Buffer; dec(size,200); ZipStream.Seek(0,soFromCurrent); end;
ZIPStream.Free; SrcStream.Free; Memo1.Text := s; end; |
Allerdings bekomme ich dabei die Exception:
Invalid Stream operation. Read from Adress $FFFFFF
Ich frag mich nur warum?
Wenn ich ZIPStream.Position < ZIPStream.Size abfrage müsste ich doch herausinden, ob ich am Ende vom Stream bin oder nicht.
:roll: :?: :( :?:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!