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

Langage Java Discussion :

Recherche chaine dans un fichier


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 50
    Par défaut Recherche chaine dans un fichier
    Bonjour,

    Je suis nouveau dans le monde de JAVA et travaille pour l'instant sur du traitement de chaine de caractère, j'ai créer une fonction qui recherche une chaine dans un fichier ligne par ligne :
    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
     
    {	boolean trouve = false;
    		String info="";
    		try{
    		     String file = path;
     
     
    		      BufferedReader br = new BufferedReader(new InputStreamReader (new FileInputStream(file)));
    		      String li="";
     
    		      while ((li = br.readLine())!=null && trouve != true){
    		        int an1 = li.indexOf(dbt);
    		        if ((an1>=0)){
    		        	info = li.substring(an1,li.indexOf(fin,an1+1));
    		        	trouve = true;
     
    		        }
    		      }
    		      br.close();
     
    		    }
     
    		catch (IOException e){
    	    		System.out.println("erreur dans l'ouverture du fichier" +e);
    	    }
     
     
    	   return info;
     
     
    	}
    Seulement la est mon probleme, c'est une analyse ligne par ligne autrement dit je ne peut pas récupérer des infos sur plusieurs lignes. Il faudrait que je stock tout le contenu du texte dans une unique variable (créer un inputstream et récupérer avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     donnee.append((char),InPuTsTream.read())
    .

    mais peut on affilier le contenu d'un fichier à un inputstream?

    Si vous avez une autre solution n'hésitez pas...

    Merci

  2. #2
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 50
    Par défaut
    J'ai une erreur de compilation : Cette méthode doit renvoyer un résultat de type String et ce ce que je fais avec chaineret Pourquoi ai-je cette erreur?

    Voici le 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    public String infocopy (String dbt, String fin, String path)
    	{	boolean trouve = false;
    		boolean trouvedeb=false;
    		int indexdeb=0,indexfin=0;
     
    		String chaineret="";
    		String tooto="13221231";
     
    		StringBuffer sbinfo = new StringBuffer();
     
    		try{
    		     String file = path;
    		     InputStream donnee = new FileInputStream(path);
     
    		     sbinfo.append((char) donnee.read());
     
    		     while ( !trouve && indexdeb != sbinfo.toString().toLowerCase().lastIndexOf(dbt.toLowerCase())){
     
    		    	 if( sbinfo.toString().toLowerCase().indexOf(dbt.toLowerCase()) !=-1){
     
    		    		 indexdeb=sbinfo.toString().toLowerCase().indexOf(dbt.toLowerCase(),indexdeb);
    		    		 System.out.println("index : "+indexdeb);
     
    		    		 if (sbinfo.toString().toLowerCase().indexOf(fin.toLowerCase(),indexdeb) !=-1 && trouvedeb ==true){
     
    		    			 indexfin=sbinfo.toString().toLowerCase().indexOf(fin.toLowerCase(),indexdeb);
    		    			 System.out.println("indexfin : "+indexfin);
     
    		    			 if(indexfin-indexdeb<100){
     
    		    				 chaineret=sbinfo.substring(indexdeb,indexfin);
    		    				 trouve=true;
    		    				 return chaineret.toString();
     
     
    		    			 }
     
    		    			 else System.out.println("erreur longueur");
     
     
    		    		 }
    		    		 else System.out.println("erreur :  fin recherché introuvable");
     
     
    		    	 }
    		    	 else System.out.println("erreur string dbt non contenu ds "+file);
     
    		     }
     
     
     
     
     
    		    }
     
    		catch (IOException e){
    	    		System.out.println("erreur dans l'ouverture du fichier" +e);
    	    }
     
     
     
     
     
    	}

  3. #3
    Membre éclairé Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Par défaut
    Je ne sais pas quelle erreur tu as, mais ta fonction doit retourner quelquechose dans les cas...

    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
    50
    51
    52
    53
    54
    public String infocopy (String dbt, String fin, String path)
    	{	boolean trouve = false;
    		boolean trouvedeb=false;
    		int indexdeb=0,indexfin=0;
    		
    		String chaineret="";
    		String tooto="13221231";
    		
    		StringBuffer sbinfo = new StringBuffer();
    		
    		try{
    		     String file = path;
    		     InputStream donnee = new FileInputStream(path);
    		     
    		     sbinfo.append((char) donnee.read());
    		     
    		     while ( !trouve && indexdeb != sbinfo.toString().toLowerCase().lastIndexOf(dbt.toLowerCase())){
    		    	 
    		    	 if( sbinfo.toString().toLowerCase().indexOf(dbt.toLowerCase()) !=-1){
    		    		 
    		    		 indexdeb=sbinfo.toString().toLowerCase().indexOf(dbt.toLowerCase(),indexdeb);
    		    		 System.out.println("index : "+indexdeb);
    		    		 
    		    		 if (sbinfo.toString().toLowerCase().indexOf(fin.toLowerCase(),indexdeb) !=-1 && trouvedeb ==true){
    		    			
    		    			 indexfin=sbinfo.toString().toLowerCase().indexOf(fin.toLowerCase(),indexdeb);
    		    			 System.out.println("indexfin : "+indexfin);
    		    			 
    		    			 if(indexfin-indexdeb<100){
    		    				 
    		    				 chaineret=sbinfo.substring(indexdeb,indexfin);
    		    				 trouve=true;
    		    				 return chaineret.toString();
    		    				
    		    				 
    		    			 }
    		    			 
    		    			 else System.out.println("erreur longueur");
    	 
    		    		 }
    		    		 else System.out.println("erreur :  fin recherché introuvable");
    	 
    		    	 }
    		    	 else System.out.println("erreur string dbt non contenu ds "+file);
    		    	 
    		     }
    		      
    		    }
    		catch (IOException e){
    	    		System.out.println("erreur dans l'ouverture du fichier" +e);
    	    }
                     return ""; // ou  return Null;
    	}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche chaine dans un fichier
    Par artiflo dans le forum Langage
    Réponses: 4
    Dernier message: 03/11/2010, 01h52
  2. Rechercher une chaine dans un fichier
    Par bigey3 dans le forum Langage
    Réponses: 12
    Dernier message: 30/05/2008, 17h35
  3. Rechercher une chaine dans un fichier Excel
    Par matcram dans le forum ASP
    Réponses: 1
    Dernier message: 03/10/2007, 22h59
  4. [code]Recherche d'une chaine dans des fichiers
    Par guillaume_pays_ceven dans le forum Contribuez
    Réponses: 5
    Dernier message: 21/06/2007, 15h32
  5. rechercher et extraire deux chaines dans un fichier
    Par piotr dans le forum Langage
    Réponses: 16
    Dernier message: 13/07/2006, 16h07

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