Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

ZLIB Library για .ΝΕΤ

Îåêßíçóå áðü ôï ìÝëïò mixio. Τελευταία δημοσίευση από το μέλος mixio στις 20-03-2009, 20:26. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  25-12-2008, 20:26 47154

    ZLIB Library για .ΝΕΤ

    Γεια και παλι,
    ψαχνω βιβλιοθηκη στο .ΝΕΤ για zlib συμπιεση/αποσυμπιεση και δε βρηκα κατι που να μου δουλευει.

    Βρηκα αυτο zlib και μου δουλευει μονο στην συμπιεση.
    Ο κωδικας για συμπιεση ειναι ο εξης:

            private static byte[] compress(byte[] data)
            {
                MemoryStream compressed = new MemoryStream();
                ZOutputStream outZStream = new ZOutputStream(compressed, 9);
                outZStream.Write(data, 0, data.Length);
                outZStream.Flush();
                outZStream.Close();
                return compressed.ToArray();
            }

    Αλλα ο κωδικας για αποσυμπιεση που χρησιμοποιω δε παιζει:

            private static byte[] decompress(byte[] data)
            {
                byte[] buffer = new byte[64 * 1024];
               
                MemoryStream uncompressed = new MemoryStream(data);
                ZInputStream inZStream = new ZInputStream(uncompressed, 9);
               
                int length = inZStream.Read(buffer, 0, buffer.Length);
                inZStream.Close();
               
                byte[] outBytes = new byte[length];
                Array.Copy(buffer, outBytes, length);
                return outBytes;
            }

    Sleep-deprived psychotic hacker

  •  26-12-2008, 15:37 47166 σε απάντηση της 47154

    Απ: ZLIB

    Η λυση σ'αυτο ειναι ο zlibnetwrapper

            private static byte[] compress(byte[] data)
            {
                MemoryStream compressed = new MemoryStream();
                Compress c = new Compress(compressed, CompressionOptions.CompressBest);
                c.Write(data, 0, data.Length);
                c.Flush();
                c.Close();
                return compressed.ToArray();
            }

            private static byte[] decompress(byte[] data)
            {
                byte[] buffer = new byte[64 * 1024];
                int length = 0;

                MemoryStream uncompressed = new MemoryStream(data);
                Decompress d = new Decompress(uncompressed);

                try { length = d.Read(buffer, 0, buffer.Length); }
                catch (ZLibException) {}

                d.Close();

                byte[] outBytes = new byte[length];
                Array.Copy(buffer, outBytes, length);
                return outBytes;
            }


    Sleep-deprived psychotic hacker

  •  27-12-2008, 11:39 47177 σε απάντηση της 47166

    Απ: ZLIB

    Μπορείς να κοιτάξεις και την sharpziplib βιβλιοθήκη. Είναι γραμμένη σε C# καιμπορείς να κάνεις αρκετά πραγματάκια με αυτήν. Επίσης υπάρχει και η System.IO.Packaging, η οποία πορσφέρει παρόμοια λειτουργικότητα. Καμία λύση από αυτές που σου αναφέρω δεν είναι η καλύτερη, αλλά γενικά μπόρεσα και έκανα τη δουλειά μου.

    Τάσος Καραγιάννης

    Baby debugging steps...
  •  27-12-2008, 12:45 47182 σε απάντηση της 47177

    Απ: ZLIB

    tasos:
    Μπορείς να κοιτάξεις και την sharpziplib βιβλιοθήκη. Είναι γραμμένη σε C# καιμπορείς να κάνεις αρκετά πραγματάκια με αυτήν. Επίσης υπάρχει και η System.IO.Packaging, η οποία πορσφέρει παρόμοια λειτουργικότητα. Καμία λύση από αυτές που σου αναφέρω δεν είναι η καλύτερη, αλλά γενικά μπόρεσα και έκανα τη δουλειά μου.


    #ziplib (SharpZipLib, formerly NZipLib) is a Zip, GZip, Tar and BZip2 library .....
    Zlib θελω εγω. Smile Την ειχα δοκιμασει και δεν ειχε zlib. To ιδιο ισχυει και για το System.io.packaging.

    Sleep-deprived psychotic hacker

  •  20-03-2009, 20:26 49468 σε απάντηση της 47182

    Απ: ZLIB

    mixio:
    tasos:
    Μπορείς να κοιτάξεις και την sharpziplib βιβλιοθήκη. Είναι γραμμένη σε C# καιμπορείς να κάνεις αρκετά πραγματάκια με αυτήν. Επίσης υπάρχει και η System.IO.Packaging, η οποία πορσφέρει παρόμοια λειτουργικότητα. Καμία λύση από αυτές που σου αναφέρω δεν είναι η καλύτερη, αλλά γενικά μπόρεσα και έκανα τη δουλειά μου.


    #ziplib (SharpZipLib, formerly NZipLib) is a Zip, GZip, Tar and BZip2 library .....
    Zlib θελω εγω. Smile Την ειχα δοκιμασει και δεν ειχε zlib. To ιδιο ισχυει και για το System.io.packaging.

    Τελικα Τασο ειχες δικιο με την SharpZipLib. Ηθελε λιγο ψαξιμο σε ποιο low level και δεν υπαρχε και πολυ doc στο internet.
    Παρακατω παραθετω τον κωδικα που χρησιμοποιω με χρηση της ICSharpCode.SharpZipLib.

    using ICSharpCode.SharpZipLib.Zip.Compression;
    using ICSharpCode.SharpZipLib.Zip.Compression.Streams;

            byte[] compress(byte[] data)
            {
                MemoryStream compressed = new MemoryStream();
                DeflaterOutputStream c = new DeflaterOutputStream(compressed, new Deflater(9));
                c.Write(data, 0, data.Length);
                c.Close();        
                return compressed.ToArray();
            }

            byte[] decompress(byte[] data)
            {
                byte[] buffer = new byte[2 * 1024];
                int length = 0;
                
                MemoryStream uncompressed = new MemoryStream(data);
                InflaterInputStream d = new InflaterInputStream(uncompressed);
                length = d.Read(buffer, 0, buffer.Length);

                byte[] outBytes = new byte[length];
                Array.Copy(buffer, 0, outBytes, 0, length);
                return outBytes;
            }

    Sleep-deprived psychotic hacker

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems