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 :

Récupérer une ligne voulue dans un fichier texte


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Par défaut Récupérer une ligne voulue dans un fichier texte
    Bonjour
    Alors voilà j'ai un petit problème, en faite j'ai un fichier texte ci-dessous :

    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
    #!/bin/csh -xv
    #BSUB -J calmod_POGO_2CU 
    #BSUB -o calmod_POGO_2CU.o%J
    #BSUB -L /bin/csh
     
    umask 002
     
    #----------------------------------------------------------------------
    set dir_listing = jdfgjkdfnbjkdfnbjnfdbndfjbndfbndfkb
    jnfjkg
    $gdfgdfg
    dfgdfgdfg74654654fdg
    fdgdfg
    fgdf
    set toto = tata 
    fgfg
    fg;hmfh
    dfdsfgdfg
    set nono = ueueue777
    set khjkhjkhkj 8787687657
    titi = tutu
    et j'aimerai récupérer les lignes de la forme set ... = .... c'est à dire je veux récupérer dans la console :
    set dir_listing = jdfgjkdfnbjkdfnbjnfdbndfjbndfbndfkb
    set nono = ueueue777
    set toto = tata


    J'ai mon début de code que j'ai réaliser :

    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
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.io.InputStreamReader;
     
     
    public class DetecteSymbole {
     
    	public static void main(String[] args) {
    		String chaine ="";
    		String fichier = "fichiertxtP2CSH.txt";
     
    		// lit le fichier ligne par ligne 
    		try{
    			InputStream ips=new FileInputStream(fichier); 
    			InputStreamReader ipsr=new InputStreamReader(ips);
    			BufferedReader br=new BufferedReader(ipsr);
    			String ligne;
    			while ((ligne=br.readLine())!=null){
    				System.out.println(ligne);
    				chaine+=ligne+"\n";
    			}
    			br.close(); 
    		}		
    		catch (Exception e){
    			System.out.println(e.toString());
    		}
    		// récupérer toutes les lignes avec un set ... = ...
     
    // a partir de là je suis bloquer grrr
    	}
     
    }
    Pouvez vous m'aider please
    Thinks

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    Bonjour,

    Le plus simple est d'utiliser la méthode matches() de la classe String. Celle-ci permet l'utilisation expression régulière (regex)

    Ainsi, il est possible de vérifier si ta ligne contient ce que tu cherche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String ligne = "set dir_listing = jdfgjkdfnbjkdfnbjnfdbndfjbndfbndfkb";
    if(ligne.matches("^set.*=.*")){
        System.out.println("La ligne matche !")
    }
    Description de expression utilisé :
    ^ : Indique que ce qui se trouve après doit être en début de la chaine.
    .* : Indique qu'on peux avoir n'importe quoi de 0 à n fois.

    Note :
    Tu peux tester en ligne des regex : regexpal.com/
    Il y a des tutoriels sur l'utilisation des regex en Java sur le site: cyberzoide.developpez.com/tutoriels/java/regex/

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Par défaut
    Merci kolodz

    Du coup j'ai :
    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
     
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.io.InputStreamReader;
     
     
    public class DetecteSymbole {
     
    	public static void main(String[] args) {
    		String chaine ="";
    		String fichier = "fichiertxtP2CSH.txt";
     
    		// lit le fichier ligne par ligne 
    		try{
    			// lire un fichier
    			InputStream ips=new FileInputStream(fichier);       
    			InputStreamReader ipsr=new InputStreamReader(ips);
    			BufferedReader br=new BufferedReader(ipsr);
    			// lire ligne par ligne 
    			String ligne;
    			while ((ligne=br.readLine())!=null){
    				//System.out.println(ligne);
    				chaine+=ligne+"\n";
    			}
    			br.close(); // On ferme le flux
    		}		
    		catch (Exception e){
    			System.out.println(e.toString());
    		}
    		// récupérer toutes les lignes avec un set ... = ...
    		String ligne1 = "set dir_listing = jdfgjkdfnbjkdfnbjnfdbndfjbndfbndfkb";
    		if(ligne1.matches("^set.*=.*")){
    		    System.out.println("La ligne : " + ligne1 + " est bonne ");
    		}else {
    		    System.out.println("La ligne : " + ligne1 + " est pas bonne ");
     
    		}
     
     
    	}
     
    }
    la méthode matches() est très efficace!
    mais comment pourrai-je faire pour que le compilateur me ressorte toutes les lignes de la forme "^set.*=.*" sans lui donner de String !
    Là on lui donne un String x = y; et il me dit si x est de la bonne forme ou pas, moi je veux qu'il me ressorte directement les x
    Je sais pas si tu vois ce que je veux dire ou pas .

    Thinks

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Par défaut
    J'ai tenter ça mais pas de résultat :

    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
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.io.InputStreamReader;
     
     
    public class DetecteSymbole {
     
    	public static void main(String[] args) {
    		String chaine ="";
    		String fichier = "fichiertxtP2CSH.txt";
     
    		// lit le fichier ligne par ligne 
    		try{
    			// lire un fichier
    			InputStream ips=new FileInputStream(fichier);       
    			InputStreamReader ipsr=new InputStreamReader(ips);
    			BufferedReader br=new BufferedReader(ipsr);
    			// lire ligne par ligne 
    			String ligne;
    			while ((ligne=br.readLine())!=null){
    				//System.out.println(ligne);
    				chaine+=ligne+"\n";
    			}
    			br.close(); // On ferme le flux
    		}		
    		catch (Exception e){
    			System.out.println(e.toString());
    		}
    		// récupérer toutes les lignes avec un set ... = ...
     
    		if(fichier.matches("^set.*=.*")){
    		    System.out.println("La ligne : " + fichier + " est bonne ");
    		} 
     
    	}
     
    }

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hum... Si une String est bonne, il n'y a plus qu'à la ressortir, au lieu d'écrire "elle est bonne."
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Par défaut
    Hum... Si une String est bonne, il n'y a plus qu'à la ressortir, au lieu d'écrire "elle est bonne."
    Oui, justement je veux plus ecrire " elle est bonne " et je ne veux plus ecrire de String , je veux que le code détecte lui même la ligne à ressortir...

  7. #7
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    Pourquoi le if est à l'extérieur de la boucle de lecture ?
    Pourquoi utiliser la variable exemple à la place de la ligne lu par le flux ?

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

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

Discussions similaires

  1. Suppression d'une ligne particulière dans un fichier texte
    Par Aymeric41 dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 29/08/2011, 13h53
  2. Supprimer une ligne vide dans un fichier texte
    Par Tibà22 dans le forum Débuter
    Réponses: 2
    Dernier message: 18/04/2011, 16h58
  3. Lire une ligne spécifique dans un fichier texte
    Par ZRemi dans le forum MATLAB
    Réponses: 2
    Dernier message: 26/04/2010, 13h58
  4. Chercher une ligne aléatoire dans un fichier texte
    Par pyopyo dans le forum Langage
    Réponses: 1
    Dernier message: 30/04/2008, 09h26
  5. Récupérer une page internet dans un fichier texte
    Par Sakapatate dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 15/06/2007, 10h06

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