Bonjour;
je dois manipuler des données d'un fichier compressé.
utiliser directement; ne marche pas!!!Code:ifstream fichier(chemin.c_str())
connaissez vous un moyen de manipuler les fichiers compressés???
je vous remercie
Version imprimable
Bonjour;
je dois manipuler des données d'un fichier compressé.
utiliser directement; ne marche pas!!!Code:ifstream fichier(chemin.c_str())
connaissez vous un moyen de manipuler les fichiers compressés???
je vous remercie
Salut,
Un fichier compressé n'est pas un fichier "classique" dans le sens où:
La première chose à faire est donc... de décompresser l'archive afin de pouvoir récupérer le(s) fichier(s) originaux.
- les données qu'il contient ont été réorganisées pour prendre moins de place (en jouant sur la taille même des données)
- c'est un fichier au format binaire
- il peut contenir plusieurs fichiers ensemble
Le fait est qu'il existe plusiseurs normes de compression (tu as surement déjà vu passé des fichiers tar.gz, tar.bz2, zip, rar ou 7z, qui sont autant de format de compression différents).
Pour pouvoir t'aider correctement, il faudrait au minimum que nous sachions dans quel format ton fichier a été compressé, afin de savoir quelle bibliothèque utiliser pour le décompressé ;)
Je vous remercie pour votre aide..
le fichier peut avoir l'une des deux formats a savoir tar.gz ou .zip.
Merci une fois de plus
Pourrait-on savoir ce que tu veux vraiment faire ?
Si ça marche, ça ouvre le fichier et te permet de lire son contenu.Code:ifstream fichier(chemin.c_str());
Maintenant qu'il s'agit d'un fichier compressé (et binaire tout simplement), je vois pas ce que tu pourras en tirer de cette manière. Sauf à avoir un algorithme de décompression.
Pour les archives ZIP, j'utilise la bibliothèque C++ ZipArchive (même si je n'ai pas téléchargé de nouvelle version depuis 2006). J'ignore si c'est toujours le cas, mais ma version était utilisable aussi bien en statique qu'en DLL.
Ca paraît pourtant on ne peut plus clair ! Que peut bien vouloir faire un débutant qui titre son post "ouvrir et lire fichier zipper en c++" à part décompresser le fichier et lire son contenu 8O ?
leila32, tu dois bien comprendre comment les choses fonctionnent:
- Le format *.tar est un format d'archive non compressé, qui permet d'empaqueter plusieurs fichiers dans un seul. Un *.tar.gz est un fichier *.tar compressé avec gzip.
- Le format *.zip joue à la fois le rôle de l'arhivage et de la compression.
Archivage et compression sont deux opérations distinctes. Il n'y a rien de compliqué mais c'est important de le comprendre. Par exemple, tu peux consulter le contenu d'une archive sans forcément avoir à en extraire les fichiers.
Je pense que le mieux à faire pour toi est d'utiliser libarchive qui supporte ces deux formats. Tu trouveras de la documentation sur le GitHub du projet. Essaye de t'en sortir avec ça et reviens nous voir si tu coinces quelque part.