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

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

Votre réponse

4 réponses

Meilleure réponse
Messages postés
5316
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
18 janvier 2019
99
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 86 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Twinuts
Messages postés
93
Date d'inscription
vendredi 19 mars 2004
Dernière intervention
6 janvier 2012
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 86 internautes nous ont dit merci ce mois-ci

Commenter la réponse de daviddubois
Messages postés
5316
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
18 janvier 2019
99
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
Messages postés
93
Date d'inscription
vendredi 19 mars 2004
Dernière intervention
6 janvier 2012
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.