lire des donnees dans un fichier texte

lire des donnees dans un fichier texte - C - Programmation

Marsh Posté le 06-10-2008 à 09:13:39    

Bonjour, je dois lire des donnees dans un fichier texte pour les organisees.
Voici le type de fichier :(ce que je cherche a afficher c est ce qu'il y a en rouge. Dans le fichier j ai ce type de donnees qui se repete 50 fois et la valeur de T02 varie).
 
 
Messnr.: 001   Datum: 23.09.2008   Zeit: 14:58:57
Keithley:
0101 T01     0.00000 °C    0102 T02    15.47087 °C    0103 ----  ---.----- ----
0104 ----  ---.----- ----  0105 ----  ---.----- ----  0106 ----  ---.----- ----
0107 ----  ---.----- ----  0108 ----  ---.----- ----  0109 ----  ---.----- ----
0110 ----  ---.----- ----
 
Druck:  
P01:       49.5647  
PKAM:      44.1536  
 
PSI:
0101 PK     48.92505 kPa   0102 PK     44.00981 kPa   0103 PK     44.11922 kPa  
0104 PK     49.56470 kPa   0105 PK     48.95871 kPa   0106 PK     44.07714 kPa  
0107 PSON   44.14447 kPa   0108 PBAR   49.56470 kPa   0109 P01    49.56470 kPa  
0110 PK     49.56470 kPa   0111 PSON   94.71083 kPa   0112 P      49.56470 kPa  
0113 P      49.56470 kPa   0114 P      94.71083 kPa   0115 P      94.71083 kPa  
0116 PKAM   94.71083 kPa  
 
Sondengeometrie:
       X         Y         Z       Alpha     Beta        R       Gamma    Achse W  
   -140.00      0.00      0.00     90.00      0.00      0.00   -180.00      0.00
 
 
Messnr.: 002   Datum: 23.09.2008   Zeit: 14:59:02
Keithley:
0101 T01     0.00000 °C    0102 T02    17.79391 °C    0103 ----  ---.----- ----
0104 ----  ---.----- ----  0105 ----  ---.----- ----  0106 ----  ---.----- ----
0107 ----  ---.----- ----  0108 ----  ---.----- ----  0109 ----  ---.----- ----
0110 ----  ---.----- ----
 
Druck:  
P01:       49.5610  
PKAM:      44.1423  
 
PSI:
0101 PK     48.83718 kPa   0102 PK     44.02294 kPa   0103 PK     44.12394 kPa  
0104 PK     49.56100 kPa   0105 PK     48.85402 kPa   0106 PK     44.07344 kPa  
0107 PSON   44.17444 kPa   0108 PBAR   49.56100 kPa   0109 P01    49.56100 kPa  
0110 PK     49.56100 kPa   0111 PSON   94.70713 kPa   0112 P      49.56100 kPa  
0113 P      49.56100 kPa   0114 P      94.70713 kPa   0115 P      94.70713 kPa  
0116 PKAM   94.70713 kPa  
 
Sondengeometrie:
       X         Y         Z       Alpha     Beta        R       Gamma    Achse W  
   -135.00      0.00      0.00     90.00      0.00      0.00   -180.00      0.00
 
Voici le code que j ai commencee a ecrire mais il ne fonctionne pas, il ya un probleme a la compilation :  
 

Code :
  1. #include <string.h>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. int main()
  5. {
  6.     FILE* fichier = NULL;
  7.     char texte[100]="";
  8.     char*  cTmp;
  9.     char   cTmp2[20];   
  10.     fichier = fopen("K345_040.DAT", "r" );//ouverture du fichier
  11.    
  12.     do//je fais une boucle pour afficher toutes les donnees du fichier
  13.     {
  14.           printf("%s\n",texte);
  15.                  
  16.          
  17.     }while (fgets(texte,100,fichier)!= NULL);
  18.     cTmp = strstr(texte,"T02" ) + 4;//je cherche T02 dans texte + l espace
  19.     while(cTmp[1] != '°')
  20.     {
  21.           *cTmp2+1 = *cTmp+1;
  22.           *cTmp2 = '\0';
  23.     }
  24.     system("pause" );
  25.     return 0;
  26. }


Reply

Marsh Posté le 06-10-2008 à 09:13:39   

Reply

Marsh Posté le 06-10-2008 à 12:55:58    

Et si tu nous disais quel problème tu as ?

Reply

Marsh Posté le 06-10-2008 à 13:02:52    

*cTmp2+1 = *cTmp+1;


 
Ça ne peut pas fonctionner avec cette ligne.

Reply

Marsh Posté le 06-10-2008 à 16:04:39    

tu veux pas faire ça en 2 lignes de perl / awk ?

Reply

Marsh Posté le 06-10-2008 à 16:05:47    

cTmp = strstr(texte,"T02" ) + 4;
 
et si strstr renvoie NULL ?

Reply

Marsh Posté le 06-10-2008 à 16:11:15    

Segmentation Fault (core dumped)
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed