Décompresser un fichier gzip sous Qt4

Résolu
cs_bny Messages postés 24 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 31 mai 2010 - 30 mai 2010 à 21:15
cs_bny Messages postés 24 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 31 mai 2010 - 31 mai 2010 à 17:19
Bonjour, j'utilise Qt4 afin de faire une application pour un projet et j'ai besoin de décompresser un fichier gzip pour ensuite l'ouvrir en format texte. Ouvrir un fichier en format texte est assez simple, cependant tout ce que j'ai trouvé afin de décompresser un fichier au format gzip n'a pas fonctionner. Je me demandais s'il n'y avait pas une façon relativement simple de décompresser un fichier au format gzip à l'aide de Qt (une librairie facile à utiliser par exemple...). Merci de bien vouloir m'aider...

4 réponses

cs_bny Messages postés 24 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 31 mai 2010
31 mai 2010 à 17:19
Finalement j'ai utilisé la librairie zlib ainsi que le code suivant :

#include "zlib-1.2.5\zlib.h"
...
...
QByteArray FenPrincipale::Decompression(QString fichier)
{
QByteArray contenu = "";

gzFile file;
file = gzopen (fichier.toUtf8().data(), "rb");
if(!file)
{
QMessageBox::critical(0, tr("importation"), tr("Impossible d'ouvrir le fichier"));
return contenu;
}

char buffer[1024];

QByteArray inputData;
while(int readBytes = gzread (file, buffer, 1024))
{
contenu.append(QByteArray(buffer, readBytes));
}
gzclose(file);
return contenu;
}

et cela fonctionne super ...me reste qu'à gérer la grande taille de mes fichiers décompressé afin de les afficher comme il se doit et c'est dans la poche.
cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
31 mai 2010 à 10:44
Bonjour,

J'ai trouvé ceci :
http://www.codeproject.com/KB/cpp/cgzip.aspx
qui devrait t'aider.
Bon codage


louis
cs_bny Messages postés 24 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 31 mai 2010
31 mai 2010 à 15:48
Malheureusement, la solution que tu as trouvé utilise des LPCTSTR...cela ferait que mon code ne serait plus portable. Je vais l'essayé quand même mais je continue à chercher quelque chose de mieux...je croyais vraiment qu'il y avait des fonctions faites pour ça en Qt...c'est dommage !
cs_bny Messages postés 24 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 31 mai 2010
31 mai 2010 à 16:07
Il semble y avoir des fonctions pour Qt QCompress() et QUnCompress() pour les Gzip mais je crois qu'il y a 4 octets d'entête de trop ou je sais pas trop quoi...il n'y a que peu d'information sur ces fonctions et tout ce que je trouve n'est vraiment pas clair. Si quelqu'un a déjà utilisé ces fonctions de l'aide serait appréciée...merci !
Rejoignez-nous