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

Boost C++ Discussion :

Décompresser une archive


Sujet :

Boost C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut Décompresser une archive
    Bonjour à tous,

    Je cherche actuellement une solution "élégante" pour décompresser une archive.
    Vu que Boost est installé sur ma machine, pourquoi ne pas l'utiliser...

    Mais voilà que :
    LINK : fatal error LNK1104: impossible d'ouvrir le fichier 'libboost_zlib-vc80-mt-1_33_1.lib'
    Alors que j'ai installé Boost dans les règles de l'art. Effectivement cette lib n'est pas présente dans le dossier. Mais je comprend pas pourquoi il cherche ce truc...


    Pour info, voici mon code (donné en exemple sur le site de Boost)
    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
    #include <iostream>
    #include <string>
    #include <fstream>
    #include <boost/iostreams/filtering_streambuf.hpp>
    #include <boost/iostreams/copy.hpp>
    #include <boost/iostreams/filter/zlib.hpp>
     
     
    int main()
    {
    	std::string fichier = "test.gz";
     
    	using namespace std;
    	ifstream file(fichier.c_str(), ios_base::in | ios_base::binary);
    	boost::iostreams::filtering_streambuf<boost::iostreams::input> in;
    	in.push(boost::iostreams::zlib_decompressor());
            in.push(file);
            boost::iostreams::copy(in, cout);
     
    	return 0;
    }
    Merci d'éclairer ma lanterne !

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    iostreams dépend de zlib pour tout ce qui est compression.

  3. #3
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    J'ai fait un fichier test avec la Zlib (en version DLL compilé) et
    c'est tout ce dont a besoin Zlib pour fonctionner...

    Je vois pas pourquoi Boost cherche cette lib... Ca commence à m'énerver!

  4. #4
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Avec Zlib j'arrive à compresser un fichier, mais pas à décompresser un fichier .zip (pas compatible)...
    Ca fait 5 heures que je suis dessus, je vais pas m'en sortir !

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    zlib ne fait qu'appliquer un algorithme de compression à une séquence d'octets. Les fichiers .zip eux font beaucoup plus, puisqu'ils gèrent une arborescence de fichiers.

  6. #6
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Eh oui...
    M'enfin en théorie dans mon cas ça devrait marcher puisque la source est compressée avec Zlib, et c'est à moi de la décompresser...
    J'ai essayé avec Zlib, mais j'arrivais pas, le code plantait avec un code d'erreur -3...

    Avec Boost j'ai pas eu plus de succès puisque j'ai pas réussi à linker.
    L'exemple qui est donné dans Boost : http://www.boost.org/libs/iostreams/doc/index.html
    ne marche pas chez moi...
    Ai-je mal installé la Zlib?
    Mystère...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/12/2009, 16h40
  2. [C#] [WinForms] Lecture d'un fichier dans une archive ZIP
    Par aegypius dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/12/2004, 17h15
  3. [Debutant] Acces à une ressource d'une archive différente.
    Par Gandor dans le forum Général Java
    Réponses: 2
    Dernier message: 30/07/2004, 19h37
  4. Compresser une base
    Par cdlr27 dans le forum Access
    Réponses: 8
    Dernier message: 15/03/2004, 14h15
  5. [ADO] [C#] [VB.NET] Compresser une BD Access par .NET
    Par olivierx dans le forum Accès aux données
    Réponses: 4
    Dernier message: 09/03/2004, 09h42

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