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 :

Comment lire un fichier binaire


Sujet :

C++

  1. #1
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut Comment lire un fichier binaire
    BOnjour,
    existe t il un tuto qui explique comment lire un fichier binaire?
    merci

  2. #2
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717

  3. #3
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    Merci,
    avant toute chose, j'ai un fichier binaire qui fait 22MB. penses tu que ce soit possible de le lire avec un programme "fait maison" avec visual C++?

    Idem avec un fichier 1.5GB?
    merci

  4. #4
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    De loin je dirais pas de souci pour les deux fichiers.

    La seule limite que tu pourrais avoir serait si tu tentes de charger le contenu d'un très gros fichier dans un buffer en mémoire, auquel cas l'allocation du buffer peut ne pas être possible (si il est gros et que le système ne peut pas trouver d'espace mémoire assez grand pour tout le bloc).

    Si tu lis le fichier au fur et a mesure alors je ne vois pas de problème.

  5. #5
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    En fait, j'ai un fichier binaire, je ne sais du tout comment le lire. On me dit que le "record size" de ce fichier fait 69 bytes.
    Ce fichier contient des string, doubles long, sur chaque ligne.
    Un peu comme ceci:
    GS 20081012 21 23.3
    GS 20081012 22 3.33
    GS 20081012 23 13.3
    GS 20081012 24 -23.3

    J'aimerais effectivement lire le fichier morceaux par morceaux, c'est-a-dire lire les caractères entre :"\t"

    Merci

  6. #6
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    Voila ce que j'obtiens quand je lis un fichier binaire, (en l'ouvrant avec le mode ios::binary):

    eÜÍ åk¥wCRR 0Gk¥u

    bien évidemment, ce n'est pas ce qui est écrit dans le fichier.

  7. #7
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    La première question que j'aurais envie de te poser est... es-tu sur que le fichier est bel et bien écrit en mode binaire

    Que se passe-t-il si tu essaye de l'ouvrir avec un éditeur de textes de type notepad (sous windows, gedit sous linux)

    D'autant plus que j'ai le plus grand mal à comprendre comment ils arrivent à une taille d'enregistrement de... 69 bytes... Es-tu sur que ce n'est pas... 19 (qui semble effectivement être le nombre... de caractères de chaque ligne)

    As tu la moindre idée du type de structure qui a été utilisée pour créer le fichier
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  8. #8
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    La première question que j'aurais envie de te poser est... es-tu sur que le fichier est bel et bien écrit en mode binaire
    >>Oui, j'ai réussi à l'ouvrir en VBA Excel, j'obtiens des nombres (qui vont de 0 à 254).

    Soit il faut les convertir en nombre réels, soit il faut les convertir en Caractères avec une table ASCII.

    Que se passe-t-il si tu essaye de l'ouvrir avec un éditeur de textes de type notepad (sous windows, gedit sous linux)
    Ceci:eÜÍ åk¥wCRR 0Gk¥u


    D'autant plus que j'ai le plus grand mal à comprendre comment ils arrivent à une taille d'enregistrement de... 69 bytes... Es-tu sur que ce n'est pas... 19 (qui semble effectivement être le nombre... de caractères de chaque ligne)
    non, c'est bien 69. Ce sont des données sous formes de tables, donc chaque ligne possède le même nombre de données.

  9. #9
    Membre très actif Avatar de harlock59
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 262
    Par défaut
    Bonjour, je voudrais savoir comment faire lorsque je veux ouvrir un fichier dit binaire sous gedit, car lors de l'ouverture, au début, je vois bien s'afficher son contenu, mais apres une seconde, gedit m'indique que le fichier est dans un encodage illisible par gedit. je ne me souviens pas du message d'erreur exact, mais apparemment il ne peut pas l'ouvrir, bien que je puisse voir son contenu s'afficher pendant une fraction de seconde.

  10. #10
    Membre très actif Avatar de harlock59
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 262
    Par défaut
    Bonjour,

    y'a-t-il des programmes sous ubuntu pour afficher des fichiers binaires en hexa ?

    [résolu] j'ai trouvé ça http://forum.ubuntu-fr.org/viewtopic.php?id=278597

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/08/2012, 20h02
  2. Réponses: 3
    Dernier message: 20/02/2007, 00h01
  3. Comment bien lire un fichier binaire ?
    Par domiq44 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 12/01/2007, 09h38
  4. comment lire des fichiers binaires
    Par compton dans le forum Autres Logiciels
    Réponses: 8
    Dernier message: 06/07/2006, 13h03
  5. Comment lire un fichier image
    Par Charlemagne dans le forum DirectX
    Réponses: 9
    Dernier message: 12/03/2004, 01h22

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