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

  FORUM HardWare.fr
  Programmation

  [C/C++] Lire un fichier de données bizarre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C/C++] Lire un fichier de données bizarre

n°115603
nasdak
Posté le 21-03-2002 à 14:06:08  profilanswer
 

jessaie de lire un fichier de données qui est comme ca:
 
01/03/2002 15:29:00 8962 267 TPB00E05   XXXXX J 001014704 0
01/03/2002 15:29:55 8963 413 PLOT I01 XX        0
 
 
il y a dix infos par ligne, séparés par des tabulations
le problème c'est que quand il n'y a rien dans un champ (par ex  apreTPB00E05 ya un champ vide) ce con de programme passe au champ suivant et ca décale tout
j'ai fait ca:
 
 
   char date[100];
   char heure[100];
   char numero_evt[100];
   char code_evt[100];
   char num_circuit[100];
   char code_oper[100];
   char nom[100];
   char prenom[100];
   char ref_usager[100];
   char codes[100];
     
   
   while ((fscanf( fic, "%s %s %s %s %s %s %s %s %s %s", date, heure, numero_evt, code_evt, num_circuit, code_oper, nom, prenom, ref_usager, codes ))!= EOF) {
     //printf( "%s ", list );  
     
    printf("date %s\n",&date);
    printf("heure %s",&heure);
    printf("numero_evt %s",&numero_evt);
    printf("code_evt %s",&code_evt);
    printf("num_circuit %s",&num_circuit);
    printf("code_oper %s",&code_oper);
    printf("nom %s",&nom);
    printf("prenom %s",&prenom);
    printf("badge %s",&ref_usager);
    printf("code %s",&codes);
    printf("ligne suivante\n" );
     
   }
 
ca marhce mais quand un champ est vide c'est décalé.. aidez moi!!

mood
Publicité
Posté le 21-03-2002 à 14:06:08  profilanswer
 

n°115605
Jar Jar
Intaigriste
Posté le 21-03-2002 à 14:08:23  profilanswer
 

Soit tu remplaces les espaces dans ton fscanf par des tabulations (\t).
Soit tu réécris tout ça à la mimine, et sans ces horribles allocations de chaînes statiques.


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°115608
bjone
Insert booze to continue
Posté le 21-03-2002 à 14:13:32  profilanswer
 

bin regarde si les positions sont toujours les mêmes et base-toi dessus....

n°115609
leirn
A.D.I.D.A.S.
Posté le 21-03-2002 à 14:15:32  profilanswer
 

bjone a écrit a écrit :

bin regarde si les positions sont toujours les mêmes et base-toi dessus....  




 
on ta dis ke ct des colonnes séprarées par des tabs


---------------
"Je brandirai une épée d'orichalque, je m'assouvirai sur des Templiers." | "Avec dans son sillage l'Ombre du Diable, Leirn appelait les morts pour une danse macabre et déchainaît les horreurs de la nuit..."
n°115612
nasdak
Posté le 21-03-2002 à 14:19:30  profilanswer
 

Citation :

Soit tu réécris tout ça à la mimine, et sans ces horribles allocations de chaînes statiques.


 
 
c'est a dire? je suis une burne...

n°115727
zi_ril_wan​ou
Posté le 21-03-2002 à 17:07:46  profilanswer
 

Fais plutôt un lecture bufferisé (char buffer[BUFSIZ]; et fgets(buffer,BUFSIZ,stream)) puis scan le buffer pas à pas avec sscanf en parsant les champs (avec une fonction du style : char *SkipToNextSpace(char *buffer)) qui te retournera le pointeur de caractère sur le prochain champ à lire (NULL s'il n'y en a plus).
C'est bête et méchant, mais c'est propre et éprouvé.
En C, évite les fscanf au maximum. Dés que tu as le moindre "pète" dans un fichier, il est alors très difficile de rendre ton code plus robuste.  
Si tu as le moindre pépin avec l'explication ci dessus, n'hésite pas et je te filerai des exemples.

 

[jfdsdjhfuetppo]--Message édité par zi_ril_wanou--[/jfdsdjhfuetppo]


---------------
Get the Cooool... Get the cool shoe-shine !

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

  [C/C++] Lire un fichier de données bizarre

 

Sujets relatifs
Boite de dialogue pour selectionner un fichier en Java[PHP]Placer le pointeur au debut du fichier
[PHP] COPIER UN MODEL DE FICHIER[C++...CKK] pb lecture fichier ... HELP !!!
aide pour un fichier batch !!![C] Ca prend combien de place un pointeur sur fichier? sur structure?
[HTML] Ouverture d'un fichier dans excel[PHP-MySQL] : Problème de connexion à la base de données sous Linux
creation de fichier en Visual Basic[C] Lecture dans un fichier
Plus de sujets relatifs à : [C/C++] Lire un fichier de données bizarre


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