![]() |
Delphi-Version: 5
Stream komprimieren / dekomprimieren
Hallo,
irgendwie hab ich ein Problem mit dem Verständnis der Funktion von TCompressionStream / TDecompressionStream der zlib. Ich versuche folgendes:
Code:
Beim dekomprimieren tritt bei smOut.CopyFrom(smDec, 0) eine 'Ungültige Stream Operation' auf, weiss jemand warum?
function compressStream(smIn, smOut: TStream; level: TCompressionLevel = clDefault): int64;
var smCmp: TCompressionStream; begin try smCmp:=TCompressionStream.Create(level, smOut); result:=smCmp.CopyFrom(smIn, 0); finally smCmp.Free; end; end; function decompressStream(smIn, smOut: TStream): int64; var smDec: TDeCompressionStream; begin try smIn.Position:=0; smDec:=TDeCompressionStream.Create(smIn); result:=smOut.CopyFrom(smDec, 0); finally smDec.Free; end; end; procedure Test; var smIn, smOut, smDec: TMemoryStream; begin try smIn:=TMemoryStream.Create; smOut:=TMemoryStream.Create; smDec:=TMemoryStream.Create; smIn.ReadFromFile('irgendwas.txt'); compressStream(smIn, smOut); decompressStream(smOut, smDec); finally smIm.Free; smOut.Free; smDec.Free; end; end; Vielen Dank Torsten |
AW: Stream komprimieren / dekomprimieren
Wenn ich mich recht erinnere, braucht TDecompressionStream die Größe des entpackten Streams. Solltest Du also z.B. vorab unkomprimiert speichern und auslesen.
|
AW: Stream komprimieren / dekomprimieren
vielleicht hilft Dir das weiter:
![]() |
AW: Stream komprimieren / dekomprimieren
Zitat:
Zitat:
Vielen Dank Euch beiden :) Torsten |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:58 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-2025 by Thomas Breitkreuz