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

Développement 2D, 3D et Jeux Discussion :

Lecture fichier .MD2 .blend


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut Lecture fichier .MD2 .blend
    Bonjour,

    Je voudrais savoir s'il est possible de convertir ce type de fichier en format lisible ?

    Je m'explique.

    J'ai un fichier MD2, je l'ouvre avec nom notepad (.txt) et je vois un truc du style :

    5ݲµpÝNµ'å·ÖaåIÖLø€ÙDT·ÖœTIÖ›N€ÙRN€ª‘V
    ªª}VTª쀪6쪪:ìTª0;šÎ‘;fΑ>€Á‘G•¶”Gl¶?°À”?QÁ^•™‘^
    l™‘a€‘c‡‘
    Ou :

    ^ _ Y R ‘Y _ ` R ^ Y Z R ‘\ Y ` ’Q
    Avec juste quelques bouts lisibles ici ou là.

    J'aimerai savoir comment on peut traduire :
    5ݲµpÝNµ'å·ÖaåIÖLø€ÙDT·ÖœTIÖ›N€ÙRN€ª‘V
    en un truc lisible ?

    Je sais comment charger un fichier MD2 c'est pas le problème, mais je sais pas comment l'ordi en lisant 5ݲµpÝNµ'å·ÖaåIÖLø€ peut extraire des coordonnées de vecteur...

    Pour lire ces fichiers dans un programme c++ je fait :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
     
    string lecture (string path)
    {
     
      int length;
      char * buffer;
     
      ifstream file;
      file.open(path.c_str(),ifstream::binary);
     
      // get length of file:
      file.seekg (0, ifstream::end);
      length = file.tellg();
      file.seekg (0, ifstream::beg);
     
      // allocate memory:
      buffer = new char [length];
     
      // read data as a block:
      file.seekg( 0, ifstream::beg );
      file.read (buffer,length);
      file.close();
     
      string S(buffer);
     
      delete[] buffer;
     
      return S;
     
    }
    Mais quand je veux voir le résultat sous forme de texte le code s'arrête dés qu'il tombe sur un caractère
    du style :  c'est quoi ces caractères ?

    En fait j'aimerai comprendre la structure d'un fichier .blend (extension de blender) pour cela il me faudrait voir comment il est fait.

    Merci
    MProg

  2. #2
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    back to basics...

    to fichier à été ecris en binaire, donc, un float va occuper 4 octets sur le disque.
    Si tu ouvre ton fichier en mode text, l'editeur de text va simplement prendre les octets et les traiter comme si c'etait des carateres (1 octets par caractères si tu est en UTF8, 2 si tu est en UTF16). Doc forcement, quand dans ton fichier tu ecrit un entier du type 0xFFFFFFFF, lorsque l'editeur de text va le lire, lui il va découper en 0xFF 0xFF 0xFF 0xFF ou 0xFFFF 0xFFFF. D'ou l'affichage obtenu qui semble completement incohérent.

    si tu veut "voir" la structure du fichier, il te faudra utiliser un editeur hexa, et encore, ce n'est qu'une petite partie du boulot...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 132
    Points : 89
    Points
    89

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    OK, c'est écrit en binaire (je m'en doutais) mais si tu regarde mon code c++ y'a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    file.open(path.c_str(),ifstream::binary);
    cela ne permet il pas de lire le fichier correctement ?

    MProg

  5. #5
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 132
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par MProg Voir le message
    OK, c'est écrit en binaire (je m'en doutais) mais si tu regarde mon code c++ y'a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    file.open(path.c_str(),ifstream::binary);
    cela ne permet il pas de lire le fichier correctement ?

    MProg
    Seulement de l'ouvrir.
    Ensuite il faut respecter la structure du fichier pour la décoder (à priori caractère par caractère).

    j'ai du code c# qui lit du md2, au cas où.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Ah j'ai compris merci, je croyais que ça permettait de lire le fichier binaire mais en fait c'est juste pour l'ouvrir en mode binaire pareil pour l'écriture.

    Merci
    MProg

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Mais si un fichier binaire n'est composé que de 1 et 0, ce truc 0xFFFFFFFF correspond à quoi ?

    Merci
    Mrog

  8. #8
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 263
    Points : 255
    Points
    255
    Par défaut
    c'est de l'écriture en hexadécimal
    chaque caractère correspond à une série de 4 bits
    0 -> 0000
    1 -> 0001
    2 -> 0010
    3 -> 0011
    ...
    E -> 1110
    F -> 1111

    ce qui est beaucoup plus facile à lire pour un être humain...

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    ok merci

    MProg

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

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