IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Recherche d'une phrase dans un fichier txt


Sujet :

Entrée/Sortie Java

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Recherche d'une phrase dans un fichier txt
    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 :

    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...
    Voici mon code :

    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
    24
    25
    26
    27
    28
    import java.io.*;
    public class ExFile2 
    {
    	public static void 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

  2. #2
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Le problème quand tu fais ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ligne.substring(0,8)
    c'est que si la ligne fait moins de 8 caractères ça déclanche un exception (voir javadoc).

    Il faudrais que tu teste avant si ta ligne fais bien plus de 7 caractères.
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut,

    Merci pour ton explication.

    Ce que je trouve étrange, c'est que quand le bout de phrase ne se trouve pas dans le txt, il y'a une seule ligne qui fait plus de 8 caractères.

    SET windir=C:\WINDOWS
    Peut être qu'il mesure aussi une ligne blanche

    Beegees

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Tu pourrais aussi utiliser indexOf pour ta recherche, ça t'éviterait de tester la longueur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ( ligne.indexOf("SET PATH") != -1 )
    {
       on a trouve !
    }
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/03/2008, 12h01
  2. Rechercher un mot ou une phrase dans un fichier
    Par cellendhyll dans le forum Général Python
    Réponses: 3
    Dernier message: 12/06/2007, 11h52
  3. Ecrire le résultat d'une query dans un fichier txt
    Par jbaers dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/11/2005, 01h49
  4. [C#][xml][regexp] Recherche d'une regexp dans un fichier xml
    Par LeJocker dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/10/2005, 12h29
  5. [D6] Recherche d'une valeur dans un fichier
    Par Lung dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2005, 08h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo