IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET]Décompression avec Gzip


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 29
    Points : 5
    Points
    5
    Par défaut [VB.NET]Décompression avec Gzip
    Bonsoir à tous,
    Voilà j'aimerai utiliser Gzip donc en cherchant sur le forum j'ai trouvé un même sujet donc je me suis empressé d'utiliser ce code qui est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    Public Shared Sub Main(ByVal args As String())
            Try
                DecompressFile("Test.gz", "TestDecompress.txt")
                Console.WriteLine("Fichier Test.gz décompressé vers TestDecompress.txt")
            Catch ex As Exception
                Console.WriteLine(String.Format("{0}: {1}", ex.[GetType](), ex.Message))
            End Try
            Console.ReadLine()
        End Sub
     
    Public Shared Sub DecompressFile(ByVal sArchiveFile As String, ByVal sDecompressedFile As String)
            Dim inDecompressedStream As GZipStream = Nothing
            Dim inFileStream As FileStream = Nothing
            Dim outFileStream As FileStream = Nothing
            Dim inBuffer As Byte()
            Dim iInBufferDataLength As Integer
            Dim fiArchiveFile As FileInfo
            Try
                ' Ouverture du fichier à decompresser
                inFileStream = New FileStream(sArchiveFile, FileMode.Open, FileAccess.Read, FileShare.Read)
                ' Creation du flux de decompression
                inDecompressedStream = New GZipStream(inFileStream, CompressionMode.Decompress)
                ' 
                fiArchiveFile = New FileInfo(sArchiveFile)
                inBuffer = New Byte(Convert.ToInt32(fiArchiveFile.Length) * 20) {}
                ' La decompression se fait en lisant le flux GzipStream
                ' On utilise  cette fonction maison car Stream.Length n'est
                ' pas disponible pour GzipStream. A la sortie de cette fonction, inBuffer
                ' contient les données non compressées
                iInBufferDataLength = ReadAllBytesFromStream(inDecompressedStream, inBuffer)
                ' Creation du fichier decompressé
                outFileStream = New FileStream(sDecompressedFile, FileMode.CreateNew, FileAccess.Write, FileShare.Read)
                outFileStream.Write(inBuffer, 0, iInBufferDataLength)
            Finally
                ' Fermeture flux ouverts
                If inFileStream IsNot Nothing Then
                    inFileStream.Close()
                End If
                If inDecompressedStream IsNot Nothing Then
                    inDecompressedStream.Close()
                End If
                If outFileStream IsNot Nothing Then
                    outFileStream.Close()
                End If
            End Try
        End Sub
     
        Private Shared Function ReadAllBytesFromStream(ByVal stream As GZipStream, ByRef buffer As Byte()) As Integer
            Dim iOffset As Integer = 0
            Dim iTotalBytesRead As Integer = 0
            Dim iBytesRead As Integer = 0
            ' Le buffer doit au moins avoir 4ko en taille
            If buffer.Length < 4096 Then
                Array.Resize(Of Byte)(buffer, 4096)
            End If
            ' La decompression se fait en lisant le flux GzipStream
            ' On utilise  cette fonction maison car Stream.Length n'est
            ' pas disponible pour GzipStream
            While True
                iBytesRead = stream.Read(buffer, iOffset, 4096)
                If iBytesRead = 0 Then
                    Exit While
                End If
                iOffset += iBytesRead
                iTotalBytesRead += iBytesRead
                If buffer.Length < (iOffset + 4096) Then
                    Array.Resize(Of Byte)(buffer, 2 * buffer.Length)
                End If
            End While
            Return iTotalBytesRead
        End Function
    Super aucune erreur quand je le met, mais j'ai quelques petites questions quand même car je ne suis pas un pro encore donc j'aimerai savoir des détails comme :

    - Comment faire pour qu'il regarde si c'est la bonne version utilisée, si non qu'il télécharge le .gz sur un lien spécifié et où mettre ce code exactement ?

    - Je dois spécifier quoi à la place de TestDecompress.txt en sachant que j'ai plusieurs dossiers/fichiers ? Et comment utiliser ce code plus précisemment ?

    Voilà pour l'instant je pense ne pas avoir d'autre question.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Yaoox Voir le message
    - Comment faire pour qu'il regarde si c'est la bonne version utilisée, si non qu'il télécharge le .gz sur un lien spécifié et où mettre ce code exactement ?
    Comment ça, quelle version ? Un fichier .gz n'a pas de version... De quelle version tu parles ?

    Citation Envoyé par Yaoox Voir le message
    - Je dois spécifier quoi à la place de TestDecompress.txt en sachant que j'ai plusieurs dossiers/fichiers ?
    Ben tu mets le vrai nom du fichier. En général, c'est le nom du fichier .gz sans l'extension .gz

    Citation Envoyé par Yaoox Voir le message
    Et comment utiliser ce code plus précisemment ?
    Tu passes en paramètre le nom du fichier compressé et le nom du fichier décompressé. Ou alors j'ai pas compris ce que tu comprends pas...

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 29
    Points : 5
    Points
    5
    Par défaut Re
    Pour l'histoire de version, ça n'a rien à voir avec Gzip ^^ En faite je veux faire en sorte que quand on lance le updater, ca vérifie dans le fichier version.txt par exemple s'il a la bonne version si oui il fait rien si non il télécharge et décompresse.

    Mais je ne sais pas où mettre ce code pour qu'il l'exécute en démarrant l'updater, ensuite
    Pour le testdecompress.txt, juste avant on spécifie le nom de l'archive donc je savais pas quoi mettre, si je dois remettre tout le contenu de l'archive ou rien

    quand j'ai dit comment l'utiliser c'était pour plutôt parler de où mettre le code.

    Merci de la réponse en tout cas mais je ne sais pas trop comment faire encore

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Yaoox Voir le message
    Pour le testdecompress.txt, juste avant on spécifie le nom de l'archive donc je savais pas quoi mettre, si je dois remettre tout le contenu de l'archive ou rien
    Euh... je comprends rien
    Qu'est-ce que tu appelles "tout le contenu de l'archive" ? une archive GZIP ne contient qu'un seul fichier...

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 29
    Points : 5
    Points
    5
    Par défaut Re
    Ah ... là tu m'en apprends une bien triste nouvelle , il y a moyen de faire une décompression pour un zip ?

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par Yaoox Voir le message
    Ah ... là tu m'en apprends une bien triste nouvelle , il y a moyen de faire une décompression pour un zip ?
    http://www.icsharpcode.net/OpenSource/SharpZipLib/

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Yaoox Voir le message
    Ah ... là tu m'en apprends une bien triste nouvelle , il y a moyen de faire une décompression pour un zip ?
    Oui, mais pas avec les classes intégrées dans le framework. Il faut utiliser une librairie externe. Perso j'aime bien #ziplib, open source et gratuit

  8. #8
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 29
    Points : 5
    Points
    5
    Par défaut Re
    Merci beaucoup pour c'est réponse mais même avec le code de l'exemple, il m'affiche quelques erreurs que je n'arrive pas à résoudre :

    Avertissement considéré comme une erreur*: L'espace de noms ou le type spécifié dans les Imports 'ICSharpCode.SharpZipLib.BZip2' ne contient aucun membre public ou est introuvable. Vérifiez que l'espace de noms ou le type est défini et qu'il contient au moins un membre public. Vérifiez que le nom de l'élément importé n'utilise pas d'autres alias. C:\Users\Kevlu\Downloads\ziplib\SrcSamples\samples\vb\minibzip2\Main.vb
    Ensuite j'en ai une autre avec :
    La clause Handles requiert une variable WithEvents définie dans le type conteneur ou l'un de ses types de base. C:\Users\Kevlu\Downloads\ziplib\SrcSamples\samples\vb\minibzip2\Main.vb
    Je vous affiche le code ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
     
    ' SharpZipLibrary samples
    ' Copyright (c) 2007, AlphaSierraPapa
    ' All rights reserved.
    '
    ' Redistribution and use in source and binary forms, with or without modification, are
    ' permitted provided that the following conditions are met:
    '
    ' - Redistributions of source code must retain the above copyright notice, this list
    '   of conditions and the following disclaimer.
    '
    ' - Redistributions in binary form must reproduce the above copyright notice, this list
    '   of conditions and the following disclaimer in the documentation and/or other materials
    '   provided with the distribution.
    '
    ' - Neither the name of the SharpDevelop team nor the names of its contributors may be used to
    '   endorse or promote products derived from this software without specific prior written
    '   permission.
    '
    ' THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &AS IS& AND ANY EXPRESS
    ' OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
    ' AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
    ' CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    ' DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    ' DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
    ' IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
    ' OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     
    Imports System
    Imports System.Windows.Forms
    Imports System.IO
     
    Imports ICSharpCode.SharpZipLib.BZip2
     
    Public Class MainForm
        Inherits System.Windows.Forms.Form
        Friend txtFileName As System.Windows.Forms.TextBox
        Friend btnBrowseForBZ As System.Windows.Forms.Button
        Friend Label1 As System.Windows.Forms.Label
        Friend rdCompress As System.Windows.Forms.RadioButton
        Friend GroupBox1 As System.Windows.Forms.GroupBox
        Friend btnExecute As System.Windows.Forms.Button
        Friend rdDecompress As System.Windows.Forms.RadioButton
     
     
    #Region " Windows Form Designer generated code "
     
        Public Shared Sub Main()
            Dim fMainForm As New MainForm
            fMainForm.ShowDialog
        End Sub
     
        Public Sub New()
            MyBase.New()
     
            'This call is required by the Windows Form Designer.
            InitializeComponent
     
            'Add any initialization after the InitializeComponent() call
     
        End Sub
     
        Private Sub InitializeComponent()
            Me.rdDecompress = New System.Windows.Forms.RadioButton()
            Me.btnExecute = New System.Windows.Forms.Button()
            Me.GroupBox1 = New System.Windows.Forms.GroupBox()
            Me.rdCompress = New System.Windows.Forms.RadioButton()
            Me.Label1 = New System.Windows.Forms.Label()
            Me.btnBrowseForBZ = New System.Windows.Forms.Button()
            Me.txtFileName = New System.Windows.Forms.TextBox()
            Me.GroupBox1.SuspendLayout()
            Me.SuspendLayout()
            '
            'rdDecompress
            '
            Me.rdDecompress.Location = New System.Drawing.Point(8, 64)
            Me.rdDecompress.Name = "rdDecompress"
            Me.rdDecompress.Size = New System.Drawing.Size(104, 24)
            Me.rdDecompress.TabIndex = 1
            Me.rdDecompress.Text = "decompress"
            '
            'btnExecute
            '
            Me.btnExecute.Location = New System.Drawing.Point(216, 112)
            Me.btnExecute.Name = "btnExecute"
            Me.btnExecute.Size = New System.Drawing.Size(112, 22)
            Me.btnExecute.TabIndex = 2
            Me.btnExecute.Text = "Execute"
            '
            'GroupBox1
            '
            Me.GroupBox1.Controls.Add(Me.rdDecompress)
            Me.GroupBox1.Controls.Add(Me.rdCompress)
            Me.GroupBox1.Location = New System.Drawing.Point(8, 40)
            Me.GroupBox1.Name = "GroupBox1"
            Me.GroupBox1.Size = New System.Drawing.Size(160, 96)
            Me.GroupBox1.TabIndex = 3
            Me.GroupBox1.TabStop = False
            Me.GroupBox1.Text = "Operation to perform"
            '
            'rdCompress
            '
            Me.rdCompress.Checked = True
            Me.rdCompress.Location = New System.Drawing.Point(8, 32)
            Me.rdCompress.Name = "rdCompress"
            Me.rdCompress.Size = New System.Drawing.Size(104, 24)
            Me.rdCompress.TabIndex = 0
            Me.rdCompress.TabStop = True
            Me.rdCompress.Text = "compress"
            '
            'Label1
            '
            Me.Label1.Location = New System.Drawing.Point(8, 16)
            Me.Label1.Name = "Label1"
            Me.Label1.Size = New System.Drawing.Size(72, 16)
            Me.Label1.TabIndex = 4
            Me.Label1.Text = "Filename:"
            '
            'btnBrowseForBZ
            '
            Me.btnBrowseForBZ.Location = New System.Drawing.Point(304, 16)
            Me.btnBrowseForBZ.Name = "btnBrowseForBZ"
            Me.btnBrowseForBZ.Size = New System.Drawing.Size(24, 22)
            Me.btnBrowseForBZ.TabIndex = 5
            Me.btnBrowseForBZ.Text = "..."
            '
            'txtFileName
            '
            Me.txtFileName.Location = New System.Drawing.Point(96, 16)
            Me.txtFileName.Name = "txtFileName"
            Me.txtFileName.Size = New System.Drawing.Size(200, 20)
            Me.txtFileName.TabIndex = 0
            '
            'MainForm
            '
            Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
            Me.ClientSize = New System.Drawing.Size(344, 152)
            Me.Controls.Add(Me.btnBrowseForBZ)
            Me.Controls.Add(Me.Label1)
            Me.Controls.Add(Me.GroupBox1)
            Me.Controls.Add(Me.btnExecute)
            Me.Controls.Add(Me.txtFileName)
            Me.Name = "MainForm"
            Me.Text = "Mini BZ2 Application"
            Me.GroupBox1.ResumeLayout(False)
            Me.ResumeLayout(False)
            Me.PerformLayout()
     
        End Sub
     
    #End Region
     
        Private Sub btnExecuteClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExecute.Click
            ' Simple input sanity checks
            If (0 = txtFileName.Text.Length) Then
                MessageBox.Show("Please enter a file name", "File name is missing")
                Return
            End If
     
            If Not File.Exists(txtFileName.Text) Then
                MessageBox.Show(txtFileName.Text, "Cannot open file")
                Return
            End If
     
     
            If (False = rdCompress.Checked) Then
                ' Decompression of single-file archive
                Dim fsBZ2Archive As FileStream, fsOutput As FileStream
                Dim strOutputFilename As String
     
                fsBZ2Archive = File.OpenRead(txtFileName.Text)
                strOutputFilename = Path.GetDirectoryName(txtFileName.Text) & _
                 Path.GetFileNameWithoutExtension(txtFileName.Text)
     
                fsOutput = File.Create(strOutputFilename)
     
                BZip2.Decompress(fsBZ2Archive, fsOutput)
     
                fsBZ2Archive.Close()
                fsOutput.Flush()
                fsOutput.Close()
            Else
                'Compression of single-file archive
                Dim fsInputFile As FileStream, fsBZ2Archive As FileStream
                fsInputFile = File.OpenRead(txtFileName.Text)
                fsBZ2Archive = File.Create(txtFileName.Text + ".bz")
     
                BZip2.Compress(fsInputFile, fsBZ2Archive, 4026)
     
                fsInputFile.Close()
                ' fsBZ2Archive.Flush() & fsBZ2Archive.Close() are automatically called by .Compress
            End If
        End Sub
     
        Private Sub btnBrowseForBZClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowseForBZ.Click
            Dim ofn As New OpenFileDialog()
     
            ofn.InitialDirectory = "c:\"
            ofn.Filter = "BZ files (*.bz)|*.bz|All files (*.*)|*.*"
     
            If (ofn.ShowDialog() = Windows.Forms.DialogResult.OK) Then
                txtFileName.Text = ofn.FileName
            End If
        End Sub
     
    End Class

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Avertissement considéré comme une erreur*: L'espace de noms ou le type spécifié dans les Imports 'ICSharpCode.SharpZipLib.BZip2' ne contient aucun membre public ou est introuvable. Vérifiez que l'espace de noms ou le type est défini et qu'il contient au moins un membre public. Vérifiez que le nom de l'élément importé n'utilise pas d'autres alias. C:\Users\Kevlu\Downloads\ziplib\SrcSamples\samples\vb\minibzip2\Main.vb
    Tu as bien une référence à l'assembly SharpZipLib ?
    Au début tu voulais du GZip, pas du BZip... tu as changé d'avis ?

    La clause Handles requiert une variable WithEvents définie dans le type conteneur ou l'un de ses types de base. C:\Users\Kevlu\Downloads\ziplib\SrcSamples\samples\vb\minibzip2\Main.vb
    Les champs de ta classe qui correspondent aux contrôles devraient être déclarés avec le modificateur WithEvents. C'est le designer qui a généré le code de l'UI ? Normalement il le fait...

    Et tu as quelle version de VS ? Normalement depuis VS2005 le code du designer se trouve dans un fichier à part...

  10. #10
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 29
    Points : 5
    Points
    5
    Par défaut Re
    Oulala,
    J'ai juste pris le code qu'il me donnait pour la décompression donc GZip ou BZip je ne connais pas bien la diférrence, je dirais même pas du tout sauf que BZip est apparement plu lent que GZip ... Apropos de l'assembly je sais pas ce que c'est

    Puis j'utilise la version Visual Basic 2010 express et oui le designer a un code différent.

    Je suis totalement débutant en VB.Net ... je connais juste le VB

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Yaoox Voir le message
    Apropos de l'assembly je sais pas ce que c'est
    Disons la DLL, pour faire simple... tu as bien téléchargé la DLL de SharpZipLib ? Il faut que tu l'ajoutes à ton projet comme référence (clic droit sur le projet)

    Citation Envoyé par Yaoox Voir le message
    Puis j'utilise la version Visual Basic 2010 express et oui le designer a un code différent.
    Bizarre quand-même... ça fait 3 versions que VS n'écrit plus le code du designer dans le même fichier, que ce soit dans l'édition express ou normale

    Mais en fait, je viens de regarder les commentaires en en-tête du fichier : c'est un fichier d'exemple que tu as récupéré sur le net, pas une Form que tu as créée toi-même avec le designer ?

  12. #12
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 29
    Points : 5
    Points
    5
    Par défaut Re
    Donc oui j'ai bien téléchargé la dll mais je l'ai pas ajouté alors sur le projet ...
    Ensuite sur le lien que tu m'as donné il y ont mis plusieurs exemples de comment ils ont utilisé Zlib donc oui c'est un fichier d'exemple mais distribué par le lien que tu m'as donné.

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Yaoox Voir le message
    Donc oui j'ai bien téléchargé la dll mais je l'ai pas ajouté alors sur le projet ...
    Ensuite sur le lien que tu m'as donné il y ont mis plusieurs exemples de comment ils ont utilisé Zlib donc oui c'est un fichier d'exemple mais distribué par le lien que tu m'as donné.
    C'est pas moi qui t'ai donné le lien... mais je t'aurais donné le même que PitMaverick

    Essaie pas de prendre le code complet, sinon tu vas galérer à essayer de faire marcher un code qui n'a pas de rapport direct avec ton problème. Prends juste le code qui s'occupe de la compression/décompression. Et choisis un exemple avec Zip plutôt que BZip...

  14. #14
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 29
    Points : 5
    Points
    5
    Par défaut Re
    En faite sur le lien que tu m'as donné (regardes plus haut tu me l'as donné aussi x)) ils montrent un exemple pour décompresser avec bzip2 et lister avec gzip mais pas décomprsser avec gzip donc je suis bien coincé ...

  15. #15
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Yaoox Voir le message
    En faite sur le lien que tu m'as donné (regardes plus haut tu me l'as donné aussi x)) ils montrent un exemple pour décompresser avec bzip2 et lister avec gzip mais pas décomprsser avec gzip donc je suis bien coincé ...
    Avec ZIP tu veux dire ? Comme dit plus haut, GZip ne compresse qu'un seul fichier à la fois...

    Si tu veux juste extraire tous les fichiers vers un répertoire, le plus simple c'est d'utiliser la classe FastZip :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Dim fz As New FastZip()
        fz.ExtractZip(zipFileName, targetDirectory, "")
    Le dernier paramètre sert à spécifier un filtre pour les fichiers à extraire, sous forme d'expression régulière. Laisse le vide pour extraire tous les fichiers

  16. #16
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 29
    Points : 5
    Points
    5
    Par défaut Re
    Oulala, c'est vrai je voulais dire Zip je me mélange les pédales ^^ désolé et merci de la réponse je test

  17. #17
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 29
    Points : 5
    Points
    5
    Par défaut Re
    Je ne vois pas comment utiliser ce code vu que je n'arrive pas à le mettre dans un bouton par exemple, même si c'est pas ce que je cherche car j'aimerai qu'il s'exécute si un condition est validé ... mais je ne vois pas comment faire si tu pouvais m'aider stp

  18. #18
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Ben là je sais pas trop quoi te dire... Normalement, avec l'exemple que je t'ai donné, tu devrais pouvoir te débrouiller. Si ce n'est pas le cas, c'est qu'il te manque les bases du langage...

    Je te suggère de lire ce cours en ligne sur VB.NET, parce que je n'ai malheureusement pas le temps de te faire un cours particulier

  19. #19
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 29
    Points : 5
    Points
    5
    Par défaut Re
    Bon voilà voilà j'ai du nouveau, j'ai réfléchi et fais un petit test mais il ne marche pas car en faite j'ai fais un système de version :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Imports ICSharpCode.SharpZipLib.Zip
     
    Public Class Form1
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            checkforupdate()
        End Sub
        Public Sub checkforupdate()
            Dim file As String = Application.StartupPath & "\version.txt"
            Dim Myver As String = My.Application.Info.Version.ToString
            Dim fz As New FastZip()
            Dim zipFileName As String
     
     
            If My.Computer.FileSystem.FileExists(file) Then
                My.Computer.FileSystem.DeleteFile(file)
            End If
     
            My.Computer.Network.DownloadFile("http://www.folsus.com/miseajour/version.txt", file)
            Dim lastver As String = My.Computer.FileSystem.ReadAllText(file)
     
            If Not Myver = lastver Then
                MsgBox("mise à jour disponible")
                My.Computer.Network.DownloadFile("http://www.folsus.com/miseajour/version.txt", "C:\Users\Kevlu\Documents\")
                My.Computer.Network.DownloadFile("http://www.folsus.com/miseajour/maj.zip", zipFileName)
                fz.ExtractZip(zipFileName, file, "")
     
            Else
                MsgBox("pas de mise à jour")
            End If
     
        End Sub
    End Class
    En faite déjà le test de version est bug, en faite même si je change la version à l'url http://www.folsus.com/miseajour/version.txt et que je laisse celle du fichier version.txt où et le updater cela ne change rien il me trouve dans tous les cas une mise à jour à faire et du coup il retélécharge à chaque fois

    Ensuite j'ai un avertissement qui est :
    La variable 'zipFileName' est utilisée avant qu'une valeur ne lui ait été assignée. Une exception de référence null peut se produire au moment de l'exécution. C:\Users\Kevlu\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplication1\Form1.vb
    Si tu pouvais m'éclairer stp
    Merci

  20. #20
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Yaoox Voir le message
    En faite déjà le test de version est bug, en faite même si je change la version à l'url http://www.folsus.com/miseajour/version.txt et que je laisse celle du fichier version.txt où et le updater cela ne change rien il me trouve dans tous les cas une mise à jour à faire et du coup il retélécharge à chaque fois
    C'est parce que ton fichier version.txt contient un retour chariot, donc son contenu n'est jamais égal à Myver

    Citation Envoyé par Yaoox Voir le message
    Ensuite j'ai un avertissement qui est :
    L'avertissement dit bien ce qu'il veut dire... tu n'as pas initialisé zipFileName, donc il vaut Nothing. Il faut que tu mettes dedans le chemin où tu vas décompresser le zip

Discussions similaires

  1. Probleme pour décompresser avec gzip
    Par Mathieu Salles dans le forum Général Java
    Réponses: 5
    Dernier message: 23/04/2013, 10h55
  2. [ObjectInputStream]Pb avec GZIP et ByteArrayInputStream
    Par riloo dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 29/04/2004, 17h19
  3. [VB.Net] Probleme avec dialogues (confirm et alert)
    Par crackity_jones666 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 26/11/2003, 22h05
  4. [IB v7.1][C#][ADO.NET] Démarrer avec IB 71
    Par BoeufBrocoli dans le forum InterBase
    Réponses: 14
    Dernier message: 05/08/2003, 12h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo