Compression avec zlib

Soyez le premier à donner votre avis sur cette source.

Vue 10 493 fois - Téléchargée 1 859 fois

Description

Facile de compressé quand on sait comment

ce code n'est pas de moi mais comme je l'ai chercher très longtemps je vous le met disponible a tous

Compatible Vb6.0 non testé avec Vb5.0

Source / Exemple :


Voir le zip car vous avez besoin de Zlib.dll qui est inclu dans le zip

Bonne Chance

Conclusion :


Pour plus d'info sur Zlib aller sur http://www.gzip.org/zlib

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
5 mars 2008

good job 9/10
Messages postés
101
Date d'inscription
mardi 8 avril 2003
Statut
Membre
Dernière intervention
1 novembre 2007

Bon ok j'ai rien dit ... devoir mémoriser la taille de mes données d'entrée ... ca me convient pas trop mais pas grave je vais le faire :D
Messages postés
101
Date d'inscription
mardi 8 avril 2003
Statut
Membre
Dernière intervention
1 novembre 2007

Merci j'ai mis le 10 :) tiens j'ai rajouté ce qui me manquais au passage.

' Decompression d'un fichier dans un tableau de "byte"
' Decompress a file in a byte Array
Public Function DecompressFileToByteArray(ByVal FilePathIn As String, ByRef TheData() As Byte) As Long
Dim intNextFreeFile As Integer
Dim lngResult As Long
Dim lngFileLen As Long

ReDim TheData(FileLen(FilePathIn))

' Read byte array from file
' Lire le fichier d'entré dans un tableau de "byte"
intNextFreeFile = FreeFile
Open FilePathIn For Binary Access Read As #intNextFreeFile
Get #intNextFreeFile, , lngFileLen ' the original (uncompressed) file's length
Get #intNextFreeFile, , TheData() ' lngFileLen : La taille original du fichier décompresser.
Close #intNextFreeFile

' Decompress
' Decompression du tableau de "byte"
DecompressFileToByteArray = DecompressByteArray(TheData(), lngFileLen)
End Function

' Compression d'un tableau de "byte" dans un fichier
' Compress a byte array in a file
Public Function CompressByteArrayToFile(ByRef TheData() As Byte, ByVal FilePathOut As String, ByVal CompressionLevel As Integer) As Long
Dim intNextFreeFile As Integer
Dim lngResult As Long
Dim lngFileLen As Long

' On met en mémoire le taille du tableau de "Byte" décompresser
lngFileLen = UBound(TheData)

' Compression du tableau de byte
' Compress byte array
CompressByteArrayToFile = CompressByteArray(TheData(), CompressionLevel)

' Efface le fichier de sortie
' Kill any file in place
On Error Resume Next
Kill FilePathOut
On Error GoTo 0

' Ecrit le tableau de "byte" dans le fichier de sortie
' Write it out
intNextFreeFile = FreeFile
Open FilePathOut For Binary Access Write As #intNextFreeFile
Put #intNextFreeFile, , lngFileLen ' must store the length of the original (uncompress) byte array
Put #intNextFreeFile, , TheData() ' lngFileLen : doit contenir la du tableau de "Byte" décompresser
Close #intNextFreeFile

' Attention : le tableau de "byte" n'est pas désalouer
' Warning : the byte array is not desallocate
' Erase TheBytes
End Function



Et en ce qui concerne l'utlisation :
Exemple pour la compression :

ReDim TheByte(255)
For i = 0 To 255
TheByte(i) = 255
Next i
CompressByteArrayToFile TheByte, "test", 9

Et .... Exemple pour la décompression :

ReDim TheByte(0)
DecompressFileToByteArray "test", TheByte

Voila.
Ha et si vous compté test sur quelque ligne comme moi pour etre sur de vous mettez "Erase TheByte" entre les deux
Messages postés
2448
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
12
c'est fait ^^
Messages postés
2448
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
12
je supprime ta note si tu veux et renote ...

++
Afficher les 12 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.