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

C++ Discussion :

Lecture Fichiers Tar


Sujet :

C++

  1. #1
    Membre chevronné Avatar de seeme
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    430
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 430
    Par défaut Lecture Fichiers Tar
    Bonsoir,

    [note: je n'ai pas d'accents sur ce clavier... dsl..]

    Je développe actuellement un gestionnaire de mémoire et de ressources.

    Pour faire simple, les ressources sont des fichiers tar avec a leur racine un fichier "index.rl" de la forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #Generated Sat Nov  6 19:37:21 2010
    #General format: id | ext | sha
    test.plop.tst.popcork	wav	72c56f548f455a4c6ec951fafd602071dcb08985bbba4e47ecfd3c3e
    test.plop.tst.laugh	mp3	2afc25d5a7866224a254bb7a2555a6b21985b1b7d295f9d17df9cf47
    test.plop.cern	jpg	17ca7618ba4a42ac6f2009a3f99959abeec1a4fc2a7d2a11b97a5bd2
    test.plop.warningsignegg	gif	078daa99dba0ec91ae98e557968e6c1cd6c6a75fb6477caf1b29170d
    Ces archives sont générées a l'aide d'un script python.

    Je cherche maintenant a ouvrir pour le moment le fichier d'index, et plus tard, forcement, les ressources qui sont dans l'archive.

    Après avoir pas mal cherche, je suis tombe sur la libtar qui apparemment répond a mes besoins, mais malheureusement elle est très mal documentée..

    Après avoir lu les pages de man, je crois avoir réussi a ouvrir l'archive:

    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
     
    void ResManager::loadPackage(const char* dir){
    	//Open the tar file and read the index
    	int fileFd;
    	TAR* tarFile;
    	if(tar_open(&tarFile, "/home/seeme/workspace/sEngine/src/PackageManager/Level1.tar", NULL, O_RDONLY,TGREAD, TAR_VERBOSE) == -1)
    			std::cout<<"ERROR OPENING FILE"<<std::endl;
     
    	th_read(tarFile);
    	tar_extract_regfile(tarFile, "index.rl");
     
     
     
    	tar_close(tarFile);
    }
    Mais la ligne tar_extract_regfile(tarFile, "index.rl"); ne fonctionne pas comme je m'y attendais... Elle ne renvois pas de descripteur de fichier, et je ne vois pas comment dire ou je veux ou le fichier soit décompressé...

    Bref, je bloque... Si vous aviez 2 minutes pour me filer un coup de main, merci d'avance!

    Au pire, je suis prêt a considérer d'autres formats d'archives. Ce n'est pas la compression qui m'intéresse, mais le regroupement d'une arborescence de fichiers dans un seul fichier, un peu comme les .pak...

  2. #2
    screetch
    Invité(e)
    Par défaut
    tar est rarement utilisé pour ca (j'ai envie de dire car il est trop puissant). En effet il sait gérer les liens symboliques, les nodes speciaux du noyaux, etc etc.
    A priori tu n'as que des fichiers reguliers? dans ce cas la bibliothèque zip est bien plus facile (et est egalement portable et mieux documentée)
    quand on ne peut pas résoudre le problème, on l'ecarte de son chemin ^^

  3. #3
    Membre chevronné Avatar de seeme
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    430
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 430
    Par défaut
    Merci pour ta réponse!

    J'ai porté mon script pour supporter les archives zip, seulement, nouveau problème, je ne trouve pas de librairie qui permette d'explorer une arborescence située dans une archive zip...

    J'ai trouvé pour décompresser un fichier avec la zlib ou boost::iostream, mais rien pour explorer l'archive et en extraire un fichier particulier.


    Je pense que je vais laisser tomber cette idée d'archive.. Mon problème c'est que je voulais regrouper mes ressources dans quelque chose de plus cohérent qu'un répertoire...

    Je vais avancer sur la partie mémoire elle-même, mais si jamais vous avez des suggestions, je suis tout ouie.

    Merci

Discussions similaires

  1. Lecture fichier Word et remplacement paramètre
    Par Pfeffer dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/02/2005, 17h30
  2. [ifstream] pb lecture fichier non sequentielle
    Par bludo dans le forum SL & STL
    Réponses: 3
    Dernier message: 10/02/2005, 21h30
  3. [LG]probleme lecture fichier
    Par yp036871 dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2004, 19h22
  4. [LG]Probleme lecture fichier file of ....
    Par John_win dans le forum Langage
    Réponses: 11
    Dernier message: 11/11/2003, 18h53
  5. [langage] prob lecture fichier .txt
    Par martijan dans le forum Langage
    Réponses: 3
    Dernier message: 16/07/2003, 11h08

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