Bonjour à tous !
J'ai un programme qui doit lire une table dans un fichier du type :
C'est un collègue qui faisait tourner ce programme sous unix.
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 Amount of points : 102 Calibration data : ------------------- Digital Level Temperature DL °C 584 -273 588 20 592 40 599 60 610 80 627 100 652 120 685 140 730 160 789 180 863 200 954 220 1064 240 1196 260 1350 280 1528 300
J'ai identifié le problème, et je subodore qu'il vient du code mis en rouge:
En effet, au débogage, i passe de 450 à 1800. Résultat: seule ma première ligne est lue, le reste, c'est du n'importe quoi!
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 while ( (sscanf(&FileLUTStockMem[i], "%s\t%s", str1, str2) == 2) && ( i < TailleFichier-1 ) ) { *pxLUT = atol (str1); *pyLUT = atol (str2); printf("\n"); printf("%03i:%07i->%04i ", j, (int)*pxLUT, (int)*pyLUT); pxLUT++; pyLUT++; j++; // Recherche le retour chariot suivant. while (FileLUTStockMem[i++] != 0x0D && ( i < TailleFichier-1 ) ); str1[0]='\0'; str2[0]='\0'; }
Comment indiquer un retour de chariot ?
Merci à vous !
Partager