Rechercher un mot dans un fichier txt

Résolu
daviddubois Messages postés 92 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 janvier 2012 - 2 juil. 2007 à 20:24
daviddubois Messages postés 92 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 janvier 2012 - 3 juil. 2007 à 08:05
Bonjour tout le monde,

J'essaie de voir si une partie de phrase se trouve dans un fichier txt, si tel est le cas, j'incrémente i de 1.

ça fonctionne très bien quand la phrase recherchée est présente dans le fichier txt et donc trouvée mais quand la phrase n'est pas dans le fichier txt, j'obtiens une erreur :

<!-- BEGIN TEMPLATE: bbcode_quote -->

Citation:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String ind
ex out of range: 8
at java.lang.String.substring(String.java:1441)
at ExFile2.main(ExFile2.java:16)
Press any key to continue...

<!-- END TEMPLATE: bbcode_quote -->
Voici mon code :

<!-- BEGIN TEMPLATE: bbcode_code -->
import java.io.*;
publicclass ExFile2
{
publicstaticvoid main (String [] args)throws IOException
{
File f = new File ("c:\\bidon.txt");
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);

String ARechercher = "SET PATH";

String ligne ="";
int i=0;
while((ligne=br.readLine())!=null)
{
if(ligne.substring(0,8).equals(ARechercher))
{
i++;
}

}

System.out.println("i vaut "+i);

br.close();

}
}

Je vous remercie d'avance pour votre aide.

beegees

4 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
2 juil. 2007 à 20:40
Salut,

pour rester dans l'esprit de ton code remplace :
if(ligne.substring(0,8).equals(ARechercher))

par :
if(ligne.indexOf(ARechercher) != -1)

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
3
daviddubois Messages postés 92 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 janvier 2012
2 juil. 2007 à 20:47
Salut Twinuts,

Merci beaucoup pour ton aide très précieuse.

ça fonctionne.

Saurais-tu m'expliquez stp ?

C'est vraiment très gentil, merci encore.

beegees
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
2 juil. 2007 à 21:03
Salut,

c'est simple tu fais :
if(ligne.substring(0,8).equals(ARechercher))
or
ici rien ne te dit que la ligne à une taille de 8.... genre une ligne vide
... alors que indexOf test juste la présence de la chaine dans une
autre sans extraire une chaine....

PS:Merci de valider les réponses qui te débloque....

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
daviddubois Messages postés 92 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 janvier 2012
3 juil. 2007 à 08:05
Salut,

Merci pour tout !

J'ai accepté ta réponse (désolé je ne suis pas encore habitué avec ce forum) et j'ai compris ton explication qui devrait m'aider pour le future.

Merci encore pour tout.

beegees
0
Rejoignez-nous