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 :

afficher structures de fichiers binaires


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 32
    Par défaut afficher structures de fichiers binaires
    Bonjour,

    Je suis entrain de me mettre progressivement au C++, et j'aimerais parcourir un fichier binaire et afficher toutes le structures.
    Faut il connaitre la constitution des structures à l'avance?
    Je voudrais savoir s'il existe un exemple pour ça.

    Merci.

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2013
    Messages : 23
    Par défaut
    Salut,

    Par principe, tu dois connaitre la structure d'un fichier binaire pour pourvoir le comprendre et le parser.

    Tu as plusieurs cas :
    a) soit il s'agit d'un fichier répondant à certains standards (dll, jpg, etc.)
    b) soit il s'agit d'un fichier que quelqu'un a fait dans son coin

    Si a), réfère toi à la documentation appropriée.
    Il se peut même que des outils de parsage existent déjà, et te prémâchent le travail (ça sert à rien de réinventer la roue..)

    Si b), il faut demander gentiment à la personne qui a déterminé cette structure.

    Tu es dans quel cas ?
    Es-tu sûr qu'il s'agit de fichier binaires (si tu l'ouvres avec un éditeur de texte, qu'est-ce qu'il t'affiche ? ) ?

  3. #3
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 32
    Par défaut
    Merci d'avoir répondu etienne.

    J'ai obtenu les structures de ce fichier binaire. En fait il ya deux type de structures. Des paquets et des Messages.
    Dans la structure des Paquets il ya un attribut qui s'appelle "NbMsg" qui determine le nombre de Messages dans ce paquet.
    Donc dois je déclarer deux structures un pour les paquets et un pour les messages? En ce qui concerne l'affichage de chaque attribut des structures comment faire?

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2013
    Messages : 23
    Par défaut
    Citation Envoyé par peemoney Voir le message
    Merci d'avoir répondu etienne.
    De rien, de rien

    Citation Envoyé par peemoney Voir le message
    J'ai obtenu les structures de ce fichier binaire. En fait il ya deux type de structures. Des paquets et des Messages.
    Dans la structure des Paquets il ya un attribut qui s'appelle "NbMsg" qui determine le nombre de Messages dans ce paquet.
    Donc dois je déclarer deux structures un pour les paquets et un pour les messages? En ce qui concerne l'affichage de chaque attribut des structures comment faire?
    Je ne suis pas vraiment magicien. Il va me falloir beaucoup plus d'information que ça si tu veux que je t'aide précisément.
    Peux tu nous transmettre la structure de tes fichiers ?

    En général, un fichier possède un en-tête qui défini son contenu. Et qui te permet de le parser.

    A priori, je dirai d'un point de vue méthodo que tu as trois aspects importants :
    - la lecture de l'info
    - classe contenat l'info
    - l'affichage de l'info

    Fais un petit peu attention à ne pas mélanger tout ça. Ce ne serait pas joli/pratique.

    Pour la lecture de l'info, il te faut les clés de compréhension du fichier..

    Le plus important, d'un point de vue conception, c'est ta classe qui contiendra l'info. il faut savoir comment tu vas l'organiser. Attributs, types, etc.

    Une fois que tu auras fais ça, tu pourras te faire une méthode affiche, ou un truc comme ça, qui affichera en console le contenu du fichier. tu pourras faire différents niveaux de Verbose si tu veux, ce genre de choses.

  5. #5
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 32
    Par défaut
    Je peux définir les structures comme suit:

    struct Packet
    {
    int longueur;
    int type;
    int seq;
    int heure;
    int serv;
    int flog;
    int nbMessage;
    };


    struct Message
    {
    int taille;
    int type;
    int nbAccor;
    int max;
    int min;
    };

    Si Packet->nbMessage=3 par exemple, on aura 3 Messages avant de passer au packet d'après.
    Donc quand tu parles d'entête je pense que tu parles du PacketHeader qui est structuré comme le struct Packet je pense..
    Pour l'affichage ca pourra venir après, mais dans un premier temps je cherche à parcourir le fichier binaire et pouvoir utiliser par exemple l'attribut nbAccor de Message..
    N'hesites pas si tu as d'autres questions.

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2013
    Messages : 23
    Par défaut
    Es-tu sûr qu'il s'agit de fichiers binaires ?

    Je demande ça, parce que les problèmes auxquels on s’attend dans ce genre de cas ont à voir avec l'endianess, la gestion de bloc, etc. Des histoire d'hexadécimal et tout et tout.

Discussions similaires

  1. Réponses: 23
    Dernier message: 13/02/2009, 12h31
  2. Réponses: 9
    Dernier message: 04/06/2007, 21h44
  3. Réponses: 5
    Dernier message: 26/03/2007, 01h30
  4. Afficher un fichier binaire sous Windows
    Par Atomikx dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 14/12/2004, 00h29

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