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 :

commen afficher le contenu d'un fichier .dat?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Bathou
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Par défaut commen afficher le contenu d'un fichier .dat?
    Bonjour!!
    question: comment affiche t on un fichier .dat.....???
    j'ai essayé de faire comme pour un fichier .txt avec de l'espoir mais sans surprise, ca ne fonctionne pas puisque j'ai du langage extraterrestre à l'écran... je suppose que puisqu'il s'agit d'un fichier en binaire il faut utiliser une fonction de conversion...
    si vous pouviez m'aider...
    merci par avance

  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Salut,

    Ca n'a pas trop de rapport avec le C, car tu confonds extension de fichier et format de fichier. L'extension ne definit pas le format, ça donne juste une indication au systeme d'exploitation. C'est pas parceque tu renommes un fichier texte en .jpg que tu auras une image...
    Ainsi, "comment lire un fichier .dat" ne veut rien dire car ça nous dit rien sur le format. Les fichiers avec l'extension .dat sont generalement dans un format propre au logiciel qui les utilise.

  3. #3
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Bathou Voir le message
    question: comment affiche t on un fichier .dat.....???
    j'ai essayé de faire comme pour un fichier .txt avec de l'espoir mais sans surprise, ca ne fonctionne pas puisque j'ai du langage extraterrestre à l'écran... je suppose que puisqu'il s'agit d'un fichier en binaire il faut utiliser une fonction de conversion...
    On ne peux rien faire si on ne connait pas la structure interne du ficher. .dat n'est pas une type bien défini, et je doute que le fameux http://www.wotsit.org ne te soit utile ici.

    D'où vient ce fichier ?

    Nota : Il est néanmoins possible de visualiser le contenu du fichier sous une forme plus ou moins lisible. Le principe est de lire le fichier en mode binaire par bloc de 16 octets, puis d'afficher ces 16 octets en hexadécimal, puis en mode texte si possible (les caractères non affichables sont alors remplacés par un .). Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    00000000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F '................'
    00000010 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F '0123456789:;<=>?'
    etc.

    Le résultat permet éventuellement de comprendre la structure interne détaillée du fichier si on en connait déjà les grandes lignes.

    Ca commencerait comme ça...
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    #include <stdio.h>
    #include <stdlib.h>
     
    static void usage (void)
    {
       printf ("USAGE : hexdump <fichier>\n");
    }
     
    static int process (char const *fname)
    {
       int err = 0;
       FILE *fp = fopen (fname, "rb");
       if (fp != NULL)
       {
           /* c'est la que ca devient interessant  ! */
       }
       else
       {
          perror (fname);
       }
       return err;
    }
     
    int main (int argc, char *argv[])
    {
       int ret = EXIT_FAILURE;
     
       if (argc > 1)
       {
          int err = process (argv[1]);
     
          if (!err)
          {
             ret = EXIT_SUCCESS;
          }
       }
       else
       {
          usage ();
       }
       return ret;
    }
    La suite ici, mais je préfèrerais que tu trouves tout seul...

  4. #4
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Code C : 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
       /* offset */
       printf ("%08lX ", offset);
       /* hexadecimal */
       {
          int i;
          for (i = 0; i < n; i++)
          {
             printf ("%02X ", (unsigned) (unsigned char) data[i]);
          }
    
          while (i < max)
          {
             printf ("-- ");
             i++;
          }
       }
    Quel est l'intérêt des accolades en gras ? La lisibilité ?

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par muad'dib Voir le message
    Quel est l'intérêt des accolades en gras ? La lisibilité ?
    La réduction de la portée de i au strict nécessaire.

    J'ai supprimé (unsigned char) car data[i] est déjà de ce type.

Discussions similaires

  1. [Reseau]FTPClient pour afficher le contenu d'un fichier
    Par boxsters dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 21/06/2006, 11h12
  2. Réponses: 2
    Dernier message: 20/11/2005, 18h54
  3. Afficher le contenu d'un fichier
    Par ginnielle dans le forum Assembleur
    Réponses: 12
    Dernier message: 10/12/2004, 10h46
  4. Afficher le contenu d'un fichier xls dans un DBgrid
    Par bianconeri dans le forum C++Builder
    Réponses: 5
    Dernier message: 03/09/2004, 16h35
  5. Réponses: 1
    Dernier message: 12/02/2003, 09h36

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