rechercher dans un fichier texte

rechercher dans un fichier texte - Java - Programmation

Marsh Posté le 03-04-2006 à 11:35:59    

Bonjour je ne sais pas comment on peut faire pour rechercher une chaine de caractères dans un ficher texte et si on trouve le résultat, donner le numéro de ligne de cette information
je sais comment lire tout un fichier:
 
FileReader fr = new FileReader(chemin);
            BufferedReader br = new BufferedReader(fr);
             String texte = "";
             String debutrecherche= "5501 3982";
             int a = 0;
                 while(a<100)  
                 {
                   
                     texte =  texte+br.readLine() + "\r\n";
                     out.print(texte);
                     
                     a++;
                     
                 }
             br.close();
mais je sais vraiment pas comment trouver cette information. la ca me lit tout mon fichier mais c pas ce que je veux. je veux simplement qu'on me retourne le numéro de ligne dans le fichier...
 
Merci beaucoup à l'avance pour votre aide


---------------
amicalement
Reply

Marsh Posté le 03-04-2006 à 11:35:59   

Reply

Marsh Posté le 03-04-2006 à 12:55:08    

Un truc de ce genre:
 

Code :
  1. String line = null, recherche = null, path = null;
  2. // le chemin du fichier et le mot recherche doivent etre definis
  3. try
  4.   {
  5.   BufferedReader br = new BufferedReader
  6.     (new FileReader(path));
  7. int i = 1; //initialisation du numero de ligne
  8. while ((line = br.readLine()) != null)
  9.   {
  10.     if ( line.indexOf(recherche) != -1)
  11.     System.out.println("Mot trouve a la ligne " + i );
  12.     i++;
  13.   }
  14. br.close();
  15.   }
  16. catch(FileNotFoundException exc) { System.out.println("File not found" );  }
  17. catch(IOException ioe) { System.out.println("Erreur IO" ); }


 
J'ai pas testé  ;)


Message édité par arrau le 03-04-2006 à 12:59:39
Reply

Marsh Posté le 03-04-2006 à 13:44:48    

Merci beaucoup tu m'as rendu un bon service là. J'aurai surement un autre question plus tard mais pour l'instant je me sens plus léger, ce problème m'ennuyant passablement ;)


---------------
amicalement
Reply

Marsh Posté le 03-04-2006 à 15:46:53    

Sinon j'ai encore un question.
j'ai fait mon analyse et une fois que j'ai trouvé l'index (ok) j'aimerais prendre les 45 premiers caractères de chaque ligne, jusquà la fin de mes enregistrements (i-1) et les afficher.
alors j'ai fais ce code ci
while(indexderecherche<i-2)
  {
   
  chaine= JE_SAIS_PAS_QUOI_METTRE.substring(0,46);
        %><input type="text" name ="monchamp" value="<%=chaine%>">
  indexderecherche++;
  }
je sais que je dois utiliser la méthode substring() pour les caractères... mais je vois pas comment prendre chaque ligne séparément afin d'en prendre chaque fois le contenu voulu, (faire le traitement de la chaine c'est ok) puis passer à la ligne suivante c'est ok aussi (indexderecherche++)
 
Merci bien du temps que tu prends pour me rendre ce service


---------------
amicalement
Reply

Marsh Posté le 03-04-2006 à 21:32:07    

Salut, pour la recherche d'une chaine dans une ligne tu peux utiliser REGEX (regular expression) dans Java (voir google car je n'ai plus en tête exactement comment ça marche).

Reply

Marsh Posté le 04-04-2006 à 08:43:58    

Hmm ca m'arrange pas en fait voila ce que je fais:
//CEST ICI QUE CA COINCE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  
  String chaine="";
        String chaine2="";
  while(indexderecherche<i-2)
  {
  chaine= ?????substring(0,5);
        chaine2= ?????substring(5,10);
  %><input type="text"value="<%=chaine%>", name="chmp1">
             <input type="text"value="<%=chaine2%>", name="chmp2">
  <% indexderecherche++;
  }
 br.close();
 
 }
je n'arrive pas à prendre les premier caractères de chaque ligne, ainsi que les caractère 6-10, car je ne sais pas comment lire ligne par ligne pour ensuite prendre ses caractères...


---------------
amicalement
Reply

Marsh Posté le 04-04-2006 à 10:25:59    

A chaque fois que tu trouves ton mot dans une ligne tu veux afficher les 45 premiers caracteres de cette ligne?
 
 
while ((line = br.readLine()) != null)
  {
    if ( line.indexOf(recherche) != -1)  
    //System.out.println("Mot trouve a la ligne " + i );
    System.out.println(line.substring(0,44));
    i++;
  }


Message édité par arrau le 04-04-2006 à 10:28:10
Reply

Marsh Posté le 04-04-2006 à 10:35:27    

non en fait j'ai mal expliqué. une fois que j'ai trouvé ce mot.
on en tient plus compte. il sert juste à donner le départ pour la suite.
Ce que je veux c'est que après cette ligne, toute ligne étant en dessous me sorte les 45 premiers caractères. Le mot de recherche n'a plus besoin d'etre utilisé.
en l'occurence ca part de la ligne 3... et jusqu'à la ligne 20 toutes les lignes doivent me sortir les 45 premiers caractères

Reply

Marsh Posté le 04-04-2006 à 14:02:38    

Non c'est bon j'ai trouvé une solution
 if ((indexderecherche<i))
   {
     %><input type="text"value="<%=line.substring(0,8)%>", name="chmp1">
     <input type="text"value="<%=line.substring(9,20)%>", name="chmp2"><br>
   <%
     
    }
chouette j'ai du faire bosser mon ptit cerveau j'avais mal commencé mon analyse et j'ai repris le temps de l'écrire sur papier et mtn ca marche...  
j'aurais encore question mais je vais déjà chercher par moi -meme

Reply

Marsh Posté le 07-08-2012 à 11:50:12    

Salut moi je n arrives pas a retrouver la ligne de la chaine de caracteres cherchee grace a ce scrip peut etre aue j ai commis une erreur :
Je suis dans dreamweaver .  
voici mon code :
 
<SCRIPT language="javascript">
   function research_string() {
      String line = null, recherche = null, path = null;
// le chemin du fichier et le mot recherche doivent etre definis  
try
  {
recherche='5941' ; path='C:\Documents and Settings\Ngapet_J\Desktop\IN_test_files\test1.txt ' ;  
  BufferedReader br = new BufferedReader (new FileReader(path));
int i = 1; //initialisation du numero de ligne  
while ((line = br.readLine()) != null)
  {
    if ( line.indexOf(recherche) != -1)
    System.out.println("Mot trouve a la ligne " + i );
    i++;
  }
br.close();
  }
catch(FileNotFoundException exc) { System.out.println("File not found" );  }
catch(IOException ioe) { System.out.println("Erreur IO" ); }
 
   }
</SCRIPT>
 
       
<FORM name="form4" action="">
  Please insert the searched string in the file (4 digits max) :  
    <INPUT type= "texte" name="mail">
   <INPUT type="button" name="bouton" value="Valider" onClick="research_string() ">
</FORM>
 
Pouvez vous m aider svp merci

Reply

Marsh Posté le 07-08-2012 à 11:50:12   

Reply

Marsh Posté le 07-08-2012 à 12:48:54    

Salut moi je n arrives pas a retrouver la ligne de la chaine de caracteres cherchee grace a ce scrip peut etre aue j ai commis une erreur :  
Je suis dans dreamweaver .  
voici mon code :  
 
<SCRIPT language="javascript">  
   function research_string() {  
      String line = null, recherche = null, path = null;  
// le chemin du fichier et le mot recherche doivent etre definis  
try  
  {  
recherche='5941' ; path='C:\Documents and Settings\Ngapet_J\Desktop\IN_test_files\test1.txt ' ;  
  BufferedReader br = new BufferedReader (new FileReader(path));  
int i = 1; //initialisation du numero de ligne  
while ((line = br.readLine()) != null)  
  {  
    if ( line.indexOf(recherche) != -1)  
    System.out.println("Mot trouve a la ligne " + i );  
    i++;  
  }  
br.close();  
  }  
catch(FileNotFoundException exc) { System.out.println("File not found" );  }  
catch(IOException ioe) { System.out.println("Erreur IO" ); }  
 
   }  
</SCRIPT>  
 
       
<FORM name="form4" action="">  
  Please insert the searched string in the file (4 digits max) :  
    <INPUT type= "texte" name="mail">  
   <INPUT type="button" name="bouton" value="Valider" onClick="research_string() ">  
</FORM>  
 
Pouvez vous m aider svp merci  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed