begin process at 2008 09 05 07:19:17
1 237 085 membres
52 nouveaux aujourd'hui
14 312 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[.NET2] COMPRESSION/DÉCOMPRESSION GZIP DE FICHIER GRÂCE À IO.COMPRESSION


Information sur la source

Catégorie :Fichier / Disque Source .NET ( DotNet ) Classé sous : compression, decompression, gzip, zip Niveau : Débutant Date de création : 16/03/2007 Date de mise à jour : 16/03/2007 20:17:00 Vu / téléchargé: 5 818 / 418

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note


Description

Un tout petit sample de la classe incroyablement pratique Io.Compression, permettant de compresser et de décompresser des fichiers à l'aide d'un algo puissant, et ce très rapidement. (aussi bien coté code que coté éxecution).
Merci le framework 2 !

Source

  • Imports System.IO
  • Imports System.IO.Compression
  • Public Class HbGzip
  • Public Shared Function Compress(ByVal cheminSource As String, ByVal cheminCible As String) As String
  • Try
  • Dim hbread As New BinaryReader(File.OpenRead(cheminSource))
  • Dim F_array(hbread.BaseStream.Length) As Byte
  • hbread.BaseStream.Seek(0, SeekOrigin.Begin)
  • hbread.BaseStream.Read(F_array, 0, F_array.Length)
  • hbread.BaseStream.Flush()
  • hbread.Close()
  • Dim tmpstream As FileStream = New FileStream(cheminCible, FileMode.OpenOrCreate)
  • Dim gzipper As GZipStream = New GZipStream(tmpstream, CompressionMode.Compress)
  • gzipper.Write(F_array, 0, F_array.Length)
  • gzipper.Flush()
  • gzipper.Close()
  • Return "compression effectuée avec succés"
  • Catch ex As Exception
  • Return ex.ToString
  • End Try
  • End Function
  • Public Shared Function Decompress(ByVal cheminSource As String, ByVal cheminCible As String) As String
  • Try
  • Dim bufferLen As Integer = 1024
  • Dim hbread As New BinaryReader(File.OpenRead(cheminSource))
  • Dim gzipper As GZipStream = New GZipStream(hbread.BaseStream, CompressionMode.Decompress)
  • Dim hbwrite As New BinaryWriter(File.OpenWrite(cheminCible))
  • Dim F_array(bufferLen) As Byte
  • Dim readlen As Integer
  • Dim flag As Boolean = True
  • Do
  • readlen = gzipper.Read(F_array, 0, F_array.Length)
  • If readlen > 0 Then
  • flag = True
  • If readlen = (bufferLen + 1) Then hbwrite.Write(F_array, 0, readlen) Else hbwrite.Write(F_array, 0, readlen - 1)
  • Else
  • flag = False
  • End If
  • Loop While (flag)
  • hbwrite.Close()
  • gzipper.Close()
  • Return "decompression effectuée avec succés"
  • Catch ex As Exception
  • Return ex.ToString
  • End Try
  • End Function
  • End Class
Imports System.IO
Imports System.IO.Compression

Public Class HbGzip

    Public Shared Function Compress(ByVal cheminSource As String, ByVal cheminCible As String) As String
        Try
            Dim hbread As New BinaryReader(File.OpenRead(cheminSource))
            Dim F_array(hbread.BaseStream.Length) As Byte
            hbread.BaseStream.Seek(0, SeekOrigin.Begin)
            hbread.BaseStream.Read(F_array, 0, F_array.Length)
            hbread.BaseStream.Flush()
            hbread.Close()
            Dim tmpstream As FileStream = New FileStream(cheminCible, FileMode.OpenOrCreate)
            Dim gzipper As GZipStream = New GZipStream(tmpstream, CompressionMode.Compress)
            gzipper.Write(F_array, 0, F_array.Length)
            gzipper.Flush()
            gzipper.Close()
            Return "compression effectuée avec succés"
        Catch ex As Exception
            Return ex.ToString
        End Try
    End Function

    Public Shared Function Decompress(ByVal cheminSource As String, ByVal cheminCible As String) As String
        Try
            Dim bufferLen As Integer = 1024
            Dim hbread As New BinaryReader(File.OpenRead(cheminSource))
            Dim gzipper As GZipStream = New GZipStream(hbread.BaseStream, CompressionMode.Decompress)
            Dim hbwrite As New BinaryWriter(File.OpenWrite(cheminCible))
            Dim F_array(bufferLen) As Byte
            Dim readlen As Integer
            Dim flag As Boolean = True
            Do
                readlen = gzipper.Read(F_array, 0, F_array.Length)
                If readlen > 0 Then
                    flag = True
                    If readlen = (bufferLen + 1) Then hbwrite.Write(F_array, 0, readlen) Else hbwrite.Write(F_array, 0, readlen - 1)
                Else
                    flag = False
                End If
            Loop While (flag)
            hbwrite.Close()
            gzipper.Close()
            Return "decompression effectuée avec succés"
        Catch ex As Exception
            Return ex.ToString
        End Try
    End Function
End Class
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

16 mars 2007 20:17:00 :
.
  • signaler à un administrateur
    Commentaire de TroXsA le 16/03/2007 20:44:21

    Pas mal mais tres ressemblant a l'exemple du MSDN !
    par la meme occasion je ferais une remarque a monsieur Microsoft on sais jamais qu'il passerais par la :)
    pourquoi ne pas avoir fait une class dans le framework 2 Compression/Decompression ? !
    sa aurait ete plus simple enfin bon c'est qu'un avis perso :)

    Juste parazarre tu aurais le Snippet qui va avec ?
    Merci et bonne continuation !

    troxsa.info


  • signaler à un administrateur
    Commentaire de hvb le 16/03/2007 22:00:46

    hmm salut et merci pour ton commentaire.
    la ressemblance avec l'exemple de microsoft est etonnante, à part si tu parles seulement des namespace utilisés lol... car c'est resultat de tattonement, et ce à partir de mon sample d'accés binaire présent ici... surtout la decompression, dont l'algo est je pense, à revoir. Peux tu me filer l'url?

    Et je comprend pas ce que tu entend pas snippet, j'ai également fait une petite recherche, et j'ai survolé un article mais n'ai pas compris l'interet de ces snippets... je croyais que c'etait juste le fait d'etre un bout de code moi...

  • signaler à un administrateur
    Commentaire de hvb le 16/03/2007 22:08:08

    ah ouais je viens de capter pour les snippets, mais tu veux quoi? le xml entier generé?
    merci c2i (http://www.c2i.fr/code.aspx?IDCode=609)

  • signaler à un administrateur
    Commentaire de hvb le 10/04/2007 10:31:44

    j'adore les contributions sans suite... ^^

Ajouter un commentaire

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS