Salut tout le monde,
Voici mon problème qui est plus proche d'un problème de conception et de réflexion que d'un problème de C.
Je dois récupérer des données dans un fichier résultat.
Données :
- Ce fichier dans lequel sont stockés des résultats n'est pas rangé comme il devrait l'être (c'est à dire : 1ère colonne position, 2ème colonne vitesse ...).
- Il est constitué de phrases génériques comme celle ci "Toto habite dans une maison située à 15 m de chez lui". "Toto2 habite dans une maison située à 20 m de chez lui".
- Je veux récupérer le 15 et le 20
Solution ?
- Il faut parcourir le fichier ligne par ligne.
=> Solution : tester au moyen de getc(pfichier) la fin du fichier. Tant que c'est différent de EOF, je continue.
- Recherche de la ligne voulue.
=> Solution :
- Je teste au moyen de fgets la présence d'une chaine d'une certaine longueur
- Et il faut qu'elle soit égale en même temps à "Toto habite dans ..." au moyen de strcmp(chaine , "toto" )
- Si on est sur la bonne ligne, je me replace au début (fseek) et j'affecte le 15 km au moyen de ????
Ce qui donnerai à la fin
Code :
- /* NOTE : pfichier pointeur fichier avec fopen
- MAX_CHAINE : longueur de ce que je recherche ou celle de la ligne ? */
- // Tant que je n'atteins pas la fin de fichier, je continue ...
- while ( getc(pfichier) != EOF)
- // Test de la chaine
- if ( (fgets(chaine , MAX_CHAINE , pfichier) != NULL ) && (strcmp(chaine , "Toto habite ..." ) ) {
- // On se replace au debut de la chaine trouvée
- fseek(pfichier, - sizeof(char)*MAX_CHAINE , SEEK_CUR);
- // Comment je prends le 15 km ???
- }
|
Est ce que je suis sur le bon chemin ou je me trompe complètement ?