Bonjour,

J'aimerais extraire d'un fichier texte, un nombre de lignes.

J'ai une méthode qui me permet de trouver ma ligne de début en fonction d'une chaine de caractères et d'une ligne pour comparer pour commencer (dans le cas de la première ligne de début pour trouver ma première chaine, cette ligne est égale à 1), mais pour trouver ma ligne de fin, je mets la ligne de comparaison égale à la ligne de fin.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package import_donnees;
 
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
 
//Pour l'appel de cette classe, indiquer dans un premier temps, la chaine à rechercher puis la ligne de départ
 
public class recherche{
 
    public static int main(String chaine, int ligne_comp) {
 
        String line = null, recherche = chaine, path = "temp.txt";
        // le chemin du fichier et le mot recherche doivent etre definis
        try
          {
          BufferedReader br = new BufferedReader
            (new FileReader(path));
        int i = 1; //initialisation du numero de ligne
        while (((line = br.readLine()) != null) )//j'ai essayé en modifiant la condition comme ceci while (((line = br.readLine()) != null) &&i<=ligne_comp )
          {
                    // je pensais mettre ici, un truc qui viens ecrire dans un fichier txt toutes les lignes à partir de ligne de comp qui correspond à ma ligne de début( quand celle-ci est différente de 1 jusqu'à la ligne où se situe le caractère)
            if ( line.indexOf(recherche) != -1)
             {
 
                System.out.println("Mot trouve a la ligne " + i );
                return(i);
          }
            i++;
          }
        br.close();
 
          }
        catch(FileNotFoundException exc) 
        { 
            System.out.println("File not found" );  
        }
 
        catch(IOException ioe) 
        { 
            System.out.println("Erreur IO" ); 
        }
        return 0;
    }
}
A partir de ce code je pensais que toutes les lignes qui contiennent la chaine qui déterminera ma ligne de fin qui se situe avant ma ligne de début, ne seraient pas prises en compte, mais ce n'est pas le cas.

Quelqu'un saurait-il m'indiquer pourquoi ?

Merci d'avance pour votre aide.