ZLib Décompression en C++
J'essaye de faire une fonction va décompresser un texte unique fichier compressé avec .gz. Il a besoin de décompresser l' .fichier gz donné son chemin et écrire le non compressé fichier texte compte tenu de sa destination. Je suis à l'aide de C++ et j'ai vu que ZLIB est exactement ce dont j'ai besoin sauf que je ne trouve pas 1 seul exemple n'importe où sur le net qui montre cela. Quelqu'un peut-il me montrer un exemple ou au moins me guider dans la bonne direction?
Vous devez vous connecter pour publier un commentaire.
Si vous voulez juste pour gonfler un fichier raw dégonflé de données (c'est à dire pas d'archive), vous pouvez utiliser quelque chose comme ceci:
La
unzippedData
vecteur détient désormais votre roue de données. Il y a sans doute des moyens plus efficaces pour stocker l'inflation des données, en particulier si vous connaissez la taille non compressée à l'avance, mais cette approche fonctionne pour moi.Si vous souhaitez enregistrer la gonflés de données dans un fichier sans traitement supplémentaire, vous pouvez ignorer le vecteur et il suffit d'écrire le
unzipBuffer
contenu d'un autre fichier.gzbuffer
aprèsgzopen
pour éviter unZ_BUF_ERROR
par exemplegzbuffer(inFileZ, 32768);
Aussi, assurez-vous de la destruction NO_GZIP pour assurer l'en-tête GZIP n'est pas IFDEFed à gonfler.cVous pouvez utiliser le
gzopen()
,gzread()
etgzclose()
fonctions de la librairie zlib, tout comme vous l'correspondant stdio fonctionsfopen()
, etc. Qui va lire le fichier gzip et le décompresser. Vous pouvez ensuite utiliserfopen()
,fwrite()
, etc. pour écrire les données non compressées de retour.Vous pouvez utiliser ZLibComplete pour ce faire. Il y a un exemple complet en C++ sur la page d'accueil de décompression GZip.
http://rudi-cilibrasi.github.io/zlibcomplete/
Ah, je vais supposer http://zlib.net/zlib_how.html fait ce que vous voulez?