1234 t'as mal aux yeux ? | Le but du programme est de rechercher une chaine de caractère dans un fichier et de renvoyer la position de cette chaine. mais evidenment mon programme ne marche pas.
Il me retourne une valeur a coté de la bonne. Mais le resultat est tjrs approchant de la vérité cad a 1 ou 2 lignes max de la chaine(sur un fichier de 500lignes).
quand je commence ma recherche pres de l'endroit ou se trouve la chaine le resultat est bon mais si je commence loin ca va plus.
Code :
- long fsearch(char *chaine,FILE *fichier,long ptdepart)
- {
- int test=1,i=0;
- long longueur=strlen(chaine);
- char c;
- fseek(fichier,ptdepart,SEEK_SET); //fixe le point de départ de la recherche
- while(test==1)
- {
- test=fscanf(fichier,"%c",&c);
- i=0;
- while(c==*(chaine+i))
- {
- fscanf(fichier,"%c",&c);
- i++;
- }
- if(i==longueur)
- {
- return ftell(fichier)-longueur-1;
- }
- }
- return -1; //erreur chaine non trouvé
- }
|
une idée un truc pour me mettre sur la voie ca serai cool je desespere, merci. |