Bonjour, j'essaie de chercher une chaine de caractère dans un fichier avec la fonction fgets mais ca ne fonctionne pas comme prévu. La chaine de caractère n'est trouvée que si elle est à la dernière ligne de mon fichier ou si elle est la seule chaine dans le fichier.
Exemple 1: les chaines sont de longueur variables et stockées comme suit dans le fichier
Chaine 1
Chaine 2
Chaine 3
==>Impossible de trouver les deux premières chaines. Mais si je demande la troisième, aucun souci.
Exemple 2:
Chaine 1
La recherche me trouve bien Chaine 1.
Voici la partie du code qui s'occupe de chercher la chaine:
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
22
23 int stop=0; if (fichier!=NULL) { do { fgets(buffer,sizeof(buffer),fichier); //si la chaine est egale a celle dans le buffer if (strcmp(chaine_a_trouver,buffer)==0) { //Modification de l'état de connexion gtk_label_set_text(GTK_LABEL(pApp->pConxState),chaine; stop=1; break; } } while( (fgets(buffer,sizeof(buffer),fichier)!=NULL) ); if (stop!=1) gtk_label_set_markup(GTK_LABEL(pApp->pConxState),"<span font_desc=\"Verdana 10\" foreground=\"#FF0000\">Chaine non trouvee dans le fichier \n \tVeuillez recommencer</span>"); fclose(fichier); }
Partager