Rechercher un mot dans un fichier txt [Résolu]

daviddubois 93 Messages postés vendredi 19 mars 2004Date d'inscription 6 janvier 2012 Dernière intervention - 2 juil. 2007 à 20:24 - Dernière réponse : daviddubois 93 Messages postés vendredi 19 mars 2004Date d'inscription 6 janvier 2012 Dernière intervention
- 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
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention - 2 juil. 2007 à 20:40
3
Merci
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

Merci Twinuts 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de Twinuts
Meilleure réponse
daviddubois 93 Messages postés vendredi 19 mars 2004Date d'inscription 6 janvier 2012 Dernière intervention - 2 juil. 2007 à 20:47
3
Merci
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

Merci daviddubois 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de daviddubois
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention - 2 juil. 2007 à 21:03
0
Merci
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
Commenter la réponse de Twinuts
daviddubois 93 Messages postés vendredi 19 mars 2004Date d'inscription 6 janvier 2012 Dernière intervention - 3 juil. 2007 à 08:05
0
Merci
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
Commenter la réponse de daviddubois

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.