Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1119 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Récupération des données d'un fichier .hex

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupération des données d'un fichier .hex

n°1983997
danydan26
Posté le 14-04-2010 à 16:24:53  profilanswer
 

Bonjours a tous,  
J'ai un fichier .hex comme suit :  
 
:100000000C9472000C948B000C948B000C948B005D  
:100010000C948B000C948B000C948B000C948B0034  
:100020000C948B000C948B000C948B000C948B0024  
:100030000C948B000C948B000C948B000C948B0014  
:100040000C948B000C948B000C948B000C948B0004  
 
et je voudrais faire une fonction pour récupéré juste les données souligné dans mon buffer,  
mais je n'arrive pas a construire la fonction permettant de le réaliser, c'est pour quoi je demande votre aide.  
Je vous remercie d'avance pour l'attention que vous porterez a mon problème :)

mood
Publicité
Posté le 14-04-2010 à 16:24:53  profilanswer
 

n°1984008
olivthill
Posté le 14-04-2010 à 16:52:07  profilanswer
 

Utiliser fopen, fgets ou fread, fclose.

n°1984009
danydan26
Posté le 14-04-2010 à 16:59:36  profilanswer
 

le soucie c'est que j'utilise un ATMEGA2560 au plus bas niveau, donc je ne peux pas utiliser les fgets et printf...
je ne peux qu'utiliser putchar et getchar, mais je ne sais pas par ou commencer et comment... =s

n°1984189
danydan26
Posté le 15-04-2010 à 10:28:16  profilanswer
 

j'ai réaliser ce petit bout de programme qui est censser utiliser un tableau a double dimension pour récupéré les octets voulut, mais il ne fonctionne pas telement, quelqu'un pourrais me dire ce qui ne va pas svp?
 

Code :
  1. if (toto >= 718) /* lorsque j'ai tous les octets du fichier envoyer */
  2.  {
  3.   for(i=0; i<718; i++)
  4.   {
  5.    indice=0;
  6.    for(j=0;j<NBR_LIGNES;j++) /* temps qu'il y a des lignes dans le fichier */
  7.    {
  8.     indice+=9; /* je saute les 9 premier octets */
  9.     for(y=0;y<33;y++) /* boucle pour prendre les 33 octets de données*/
  10.     {
  11.        donnees[i][y]=buffer[indice]; /* indice prend la valeur du tableau */
  12.        indice++;
  13.     }
  14.     indice+=2; /* saute les 2 dernier octets */
  15.    }
  16.    putchar1(donnees[j][y]); /* affichage des données */
  17.   }
  18.   toto=0;
  19.  }

n°1984259
gilou
Modérateur
Modzilla
Posté le 15-04-2010 à 11:48:02  profilanswer
 

Voir mes deux remarques.

 
Code :
  1. if (toto >= 718) /* lorsque j'ai tous les octets du fichier envoyer */
  2.  {
  3.   for(i=0; i<718; i++)
  4.   {
  5.    indice=0;
  6.    for(j=0;j<NBR_LIGNES;j++) /* temps qu'il y a des lignes dans le fichier */
  7.    {
  8.     indice+=9; /* je saute les 9 premier octets */
  9.     for(y=0;y<33;y++) /* boucle pour prendre les 33 octets de données*/
  10.     {
  11.        // **** j et non i dans ce qui suit je pense
  12.        donnees[i][y]=buffer[indice]; /* indice prend la valeur du tableau */
  13.        indice++;
  14.     }
  15.     indice+=2; /* saute les 2 dernier octets */
  16.    }
  17.    // **** C'est  surement faux ici, vu qu'on est sorti des boucles en j et y
  18.    putchar1(donnees[j][y]); /* affichage des données */
  19.   }
  20.   toto=0;
  21.  }
 

A+,

 


Message édité par gilou le 15-04-2010 à 11:48:32

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°1984348
danydan26
Posté le 15-04-2010 à 14:37:40  profilanswer
 

J'ai trouver le soucie, je ne prener pas en compte le caractère de saut de ligne et de retour chariot qui ne son pas visible =/
 

Code :
  1. if (toto >= 718)
  2.  {
  3.    indice=0;
  4.    for(j=0;j<NBR_LIGNES;j++)
  5.    {
  6.     indice+=9;
  7.     for(y=0;y<32;y++)
  8.     {
  9.        donnees[j][y]=buffer[indice];
  10.        indice++;
  11.     }
  12.     indice+=4;
  13.    }
  14.    for(j=0;j<NBR_LIGNES;j++)
  15.    {
  16.     for(y=0;y<32;y++)
  17.     {
  18.        putchar1(donnees[j][y]);
  19.     }
  20.     putchar1(0x0D);
  21.     putchar1(0x0A);
  22.    }
  23.   toto=0;
  24.  }


 
Maintenent je réalise une fonction de conversion ascii en hexa qui suit :
[cpp]unsigned char asciitohex(unsigned char C1, unsigned char C2)
 {
  if((C1 >= '0') & (C1 <= '9'))
   ret=C1 - 0x30;
  if((C1 >= 'A') & (C1 <= 'F'))
   ret=C1 - 0x41 + 10;
  if((C2 >= '0') & (C1 <= '9'))
   ret=C2 - 0x30;
  if((C2 >= 'A') & (C1 <= 'F'))
   ret=C2 - 0x41 + 10;
  C3 = C1+C2;
  return 0;
              }
 
mais je voudrais concaténé 2 octets ensembles, (ex : 0C9472000C948B000C948B000C948B00  
que les octets 0 et C forme un seul octet 0x0C)...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Récupération des données d'un fichier .hex

 

Sujets relatifs
$_POST et récupération d'une valeuraction auto lors d'ajour de fichier dans le serveur
Aide Base de données overclocking[Resolu] Détail d'un fichier sous DOS
Récupération données .html dans un fichier .txt[RESOLU]Récupération des données d'un fichier .txt
aide recuperation donnees d'un fichier texteGettext en ASP / fichier .po
[PHP] Récupération de données dans un fichier[C] Recuperation des données à partir d'un fichier !
Plus de sujets relatifs à : Récupération des données d'un fichier .hex


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR