Entwickler-Ecke
Dateizugriff - Zlib - Fehler: Ungültige Stream Operation
FloFri - Do 09.10.03 13:34
Titel: Zlib - Fehler: Ungültige Stream Operation
Hi!
Ich hoffe, mir kann einer helfen. Ich habe folgenden code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| var CompressedFile, PluginFile: TFileStream; Compressor: Zlib.TDecompressionStream; begin CompressedFile := TFileStream.Create(filename, fmOpenRead); CompressedFile.Seek(0, sofrombeginning); PluginFile := TFileStream.Create(Filename + '.unc', fmCreate); Compressor := TDeCompressionStream.Create(PluginFile); Compressor.CopyFrom(CompressedFile, CompressedFile.Size); Compressor.Free; CompressedFile.Free; ... |
Ich will die Datei in CompressedFile nach PluginFile dekomprimieren.
Ich bekomme aber bei dem Aufruf:
Delphi-Quelltext
1:
| Compressor.CopyFrom(CompressedFile, CompressedFile.Size); |
immer den Fehler
Zitat: |
Ungültige Stream Operation |
Was stimmt da nicht???
Moderiert von
Tino: Delphi-Tags hinzugefügt.
barfuesser - Do 09.10.03 16:23
Du mußt den komprimierten Stream an TDecompressionStream übergeben und nicht umgedreht. Anschließend kannst Du dann den TDecompressionStream kopieren. Allerdings dürfte ein einfaches CopyFrom nicht funktionieren, da die Anzahl der zu kopierenden Bytes nicht gleich der Dateigröße der komprimierten Datei sein kann.
barfuesser
FloFri - Do 09.10.03 17:03
Wie mach ich das dann am besten?
Ich habs mit dem Versucht:
Quelltext
1: 2: 3: 4: 5:
| while True do begin i := Compressor.Read(Buffer, 1); if i <> 0 then PluginFile.Write(Buffer, i) else Break; end; |
Aber dannach ist PluginFile.Size = 0
Kann doch eigendlich nicht sein, oder? Ich brauche nähmlich PluginFile.Size später noch.
mimi - Mi 15.10.03 18:40
ich habe das gleiche problem, nur mit BZIP2, hast du das problem behben können ?
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!