Re: Komprimierung eines Bytefelds

Tech-Archive recommends: Fix windows errors by optimizing your registry



"Herfried K. Wagner [MVP]" <hirf-spam-me-here@xxxxxx> schrieb im Newsbeitrag
news:u$YK0lYSIHA.5400@xxxxxxxxxxxxxxxxxxxxxxx
Hallo Peter!

"Peter Gast" <peter.gast@xxxxxxxxxx> schrieb:
hat jemand ein Codesnippet, das die Komprimierung und Dekomprimierung
eine Byte-Feldes (in ein Bytefeld) aufzeigt? Ich finde beim googeln nur
Beispiel mit Dateien?

Siehe Klassen 'System.IO.MemoryStream' und
'System.IO.Compression.GZipStream'. Zuerst übergibst Du das Bytearray dem
Konstruktor von 'MemoryStream'. Diesen übergibst Du anschließend dem
Konstruktor von 'GZipStream'. Ein Beispiel zum Lesen der Daten aus dem
komprimierten Datenstrom findest Du hier:

GZipStream Constructor (Stream, CompressionMode) (System.IO.Compression)
<URL:http://msdn2.microsoft.com/en-us/library/as1ff51s(VS.80).aspx>

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Hallo Herfried,
leider klappt nur das Packen. Wenn ich den MS-Code (link) versuche
nachzuvollziehen stelle ich fest, dass man beim Dekomprimieren auch keine
Erfolg hat, wenn man den MemoryStream wieder zurücksetzt (was ja normal ist
bei einem getrennt Dekomp-Code)

Mit folgendem Snippet habe ich versucht dem Problem auf die Scnliche zu
kommen, komme aber beim Unzip-Teil nicht weiter


Imports System.IO.Compression
......
Dim byteOrig(10000) As Byte
For i As Integer = 0 To byteOrig.Length - 1
byteOrig(i) = 65
Next

Dim msZip As New System.IO.MemoryStream()
Dim StreamZip As New GZipStream(msZip, CompressionMode.Compress, True)
StreamZip.Write(byteOrig, 0, byteOrig.Length)
Dim byteZIP As Byte() = msZip.ToArray
MsgBox("A: " + byteOrig.Length.ToString + " ZIP: " +
byteZIP.Length.ToString)

Dim byteUnZIP() As Byte
Dim msUnZip As New System.IO.MemoryStream()
Dim StreamUnZip As New GZipStream(msUnZip, CompressionMode.Decompress)
byteUnZIP = msUnZip.GetBuffer()
MsgBox("A: " + byteOrig.Length.ToString + " UNZIP: " +
byteUnZIP.Length.ToString)

Gruß Peter


.



Relevant Pages