Back to "Il mio piccolo helper di compressione... versione migliorata"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

Imported mostlylucidcouk

Il mio piccolo helper di compressione... versione migliorata

Tuesday, 06 April 2004

Ho pubblicato la mia classe di assistenti alla compressione prima e mi sono reso conto quasi immediatamente che soffriva di 'legacy lagM SK1 - quindi è stato cambiato così tanto negli mesi che era davvero cattivo! Comunque, è una versione modificata di quella classe (che io'ho provato anche il mio nuovo schema di formatazione suM SK3 come riminatoreMSC4 è solo un semplice wrapper intorno SharpZipLib.

usando System;

usando il sistema.Text;

usando il sistema.IO;

usando ICSharpCode.SharpZipLib;

namespace SerializableJob.Compressione

{

public enum CompressionType

{

GZip,

BZip2,

Zip

}

Compressione di classe pubblica

{

Public static CompressionType CompressionProvider = Compression TypeM SK1GZip;

Stream Private Statica OutputStream(InputStremaStream )

{

switch(CompressionProvider)

{

Case CompressionType.BZip2:

restituire il nuovo ICSharpCode.SharpZipLib.BZipM SK2B Zip 2OutputStreamMSC4inputStream≥);

Case CompressionType.GZip:

restituire il nuovo ICSharpCode.SharpZipLib.GZipM SK2G ZipOutputStreamMSC3inputStream≥);

tipo di compressione.Zip

restituire il nuovo ICSharpCode.SharpZipLib.ZipM SK2ZepOutputStreamMSC3inputStream≥);

default:

restituire il nuovo ICSharpCode.SharpZipLib.GZipM SK2G ZipOutputStreamMSC3inputStream≥);

}

}

Stream InputStream(Stream inputStream )

{

switch(CompressionProvider)

{

Case CompressionType.BZip2:

restituire il nuovo ICSharpCode.SharpZipLib.BZipM SK2B Zip 2InputStreamMSC4inputStream≥);

Case CompressionType.GZip:

restituire il nuovo ICSharpCode.SharpZipLib.GZipM SK2G ZipInputStreamMSC3inputStream≥);

tipo di compressione.Zip

restituire il nuovo ICSharpCode.SharpZipLib.ZipM SK2ZepInputStreamMSC3inputStream≥);

default:

restituire il nuovo ICSharpCode.SharpZipLib.GZipM SK2G ZipInputStreamMSC3inputStream≥); 

}

}

Byte statico pubblico[] Compress[]BytesToCompress)

{

MemoryStream ms = nuovo MemoryStream();

Stream s = OutputStream(msM SK2

  1. ScrivereM SK1bytesToCompress,0, bytesToCompression .LongthMSC4

s.Close();

restituire ms.ToArray();

}

String Statico Publico Compress(string stringToCompress )

{

Byte[] dati compressi = CompressToByteM SK2stringToCompress);

string strOut = Convertire.ToBaseM SK2StringMSC3compressedData );

tornare strOut;

}

Byte statico pubblico[] CompressToByteM SK1string stringToCompress)

{

Byte[] bytData = Encoding.UnicodeM SK3GetBytesMSC4stringToCompressMST5

tornare Compress(bytData);;

}

String pubblico DeCompress(string stringToDecompress )

{

string outString = string.EmptyM SK2

Se (stringToDecompress == null)

{

lanciare un nuovo ArgumentNullException("stringToDecompress","hai cercato di usare una stringa vuotaM SK2

}

provare

{

Byte[] inArr = ConvertireM SK2FromBase64StringMNK4stringToDecompressMRK5TrimMMK6

outString = System.Texto .EncodazioneM SK3UnicodeMSC4GetStringMska5DeCompressMske6inArrMске7

}

Cattura (NullReferenceException nEx)

{

restituire nEx.Message;

}

tornare fuoriString;

}

Byte statico pubblico[] DeCompress(byte[]BytesToDecompress)

{

Byte[] writeData = nuovo byte[4096];

Stream s2 M SK1 InputStream(new MemoryStream (bytesToDecompressMSC4

MemoryStream outStream = nuovo MemoryStream();

Mentre(true)

{

dimensione int = sM SK1Read(writeDataMSC3w writeData .LongthMST5

se(grandità>0)

{

outStream.WriteM SK1writeData,0,size );

}

Un altro.

{

interrompere;

}

}

s2.Close();

Byte[] outArr = outStreamM SK2ToArray();

outStream.Close();

tornare fuoriArr;

}

}

} ?>

logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.