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

avec Java Discussion :

Stocker 2 String et récupérer un couple clé/valeur


Sujet :

avec Java

  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 Stocker 2 String et récupérer un couple clé/valeur
    Salut
    alors voilà j'ai mon code ci-dessous qui me permets de detecter toutes les lignes d'un texte de la forme set ... = ...
    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
     
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
     
     
    public class DetecteSymbole {
     
    	public static void main(String[] args) throws FileNotFoundException {
     
    		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);
     
    				if(ligne.matches("^set.*=.*")){
    				    System.out.println("On récupère : " + ligne);
    				}
     
    			}
    			br.close(); // On ferme le flux
    		}		
    		catch (Exception e){
    			System.out.println(e.toString());
    		}
     
     
     
    	}
     
    }
    en output j'ai :
    On récupère : set dir_listing = jdfgjkdfnbjkdfnbjnfdbndfjbndfbndfkb
    On récupère : set toto = tata
    On récupère : set nono = ueueue777


    et maintenant j'aimerai en faite créer un code qui me récupère ... et ... c'est à dire toto et tata ; dir_listing et jdfgjkdfnbjkdfnbjnfdbndfjbndfbndfkb ; nono et ueueue777
    puis les stoker dans une arraylists.

    Là j'ai commencer mon code mais j'ai du mal pour la suite :
    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
    import java.util.ArrayList;
     
     
    public class RecupCleValeur {
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
    		String filename = "fichiertxtP2CSH.txt";
     
    		Finally fn = new Finally();
    		String gg = fn.detecteSymbole(filename);
     
    		// creer une arraylist 
    		ArrayList <String> stoke = new ArrayList <String>();
     
     
     
    	}
     
    }
    Avez vous une petite idée ?
    Thinks

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    On t'a déjà parlé dans une autre discussion des groupes de captures dans les expressions régulières : tu peux utiliser justement ici un groupe de capture pour récupérer chacune des parties, en modifiant cette expression régulière (les parties à capturer sont bien sûr les deux ".*") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ligne.matches("^set.*=.*")
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Autre chose : tu as un système clé/valeur.
    Donc une ArrayList n'est pas une bonne idée pour représenter cette structure de données

  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
    Oui je vais essayer de faire avec les groupes de captures ! je suis entrzain d'y réflechir là
    merci Joel

    Oui eulbobo, je vais utiliser une hashmap c'est mieux

  5. #5
    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 ça :

    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
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
     
    public class RecupCleValeur {
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
    		String filename = "C:\\Users\\ksmaili\\workspace\\fichiertxtP2CSH.txt";
     
    				/*"#!/bin/csh -xv"+
    				"#BSUB -J calmod_POGO_2CU "+
    				"#BSUB -o calmod_POGO_2CU.oJ"+
    				"#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";*/
     
     
    		Finally fn = new Finally();
    		String gg = fn.detecteSymbole(filename);
     
    		// je peux utiliser un groupe de capture pour recuperer chacune des parties 
     
     
    		 Pattern p=Pattern.compile(".*");
    		 Matcher m=p.matcher(filename);
    		 while(m.find()) {
    			 System.out.println(m.group(1)); 
    		 }
     
    	}
     
    }
    Sa me donnes pas ce que je veux mais je pense avoir un problème au niveau du pattern nan ?

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Oui, c'est sûr : matcher .* veut dire matcher n'importe quelle suite de 0 à n caractères quelconques. Toute chaîne matches .*.

    Les groupes de captures ! Les machins avec des parenthèses autour ! Et évidemment, ça ne change pas fondamentalement l'expression régulière qui te sert à détecter les chaînes qui t'intéressent.

    Par exemple, si je veux chercher les A suivi d'un nombre, je vais écrire l'expression A\d+. si je veux connaitre quel nombre, je vais capturer la partie de l'expression qui correspond au nombre, la mettre entre parenthèses : A(\d+).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    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
    Citation Envoyé par joel.drigo Voir le message
    Oui, c'est sûr : matcher .* veut dire matcher n'importe quelle suite de 0 à n caractères quelconques. Toute chaîne matches .*.

    Les groupes de captures ! Les machins avec des parenthèses autour ! Et évidemment, ça ne change pas fondamentalement l'expression régulière qui te sert à détecter les chaînes qui t'intéressent.

    Par exemple, si je veux chercher les A suivi d'un nombre, je vais écrire l'expression "A\d+". si je veux connaitre quel nombre, je vais capturer la partie de l'expression qui correspond au nombre, la mettre entre parenthèse : "A(\d+)".
    Ah oui je crois que j'ai compris !
    alors je devrait ecrire :
    "^set(.*)=(.*)" ?

  8. #8
    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
    Re

    alors j'ai ça pour l'instant :

    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
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
     
    public class RecupCleValeur {
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
    		String filename = "#!/bin/csh -xv"+
    				"#BSUB -J calmod_POGO_2CU "+
    				"#BSUB -o calmod_POGO_2CU.oJ"+
    				"#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";
     
    		// je peux utiliser un groupe de capture pour recuperer chacune des parties 
     
     
    		 Pattern p=Pattern.compile("^set(.*)=(.*)");
    		 Matcher m=p.matcher(filename);
    		 while(m.matches()) {
    			System.out.println(m.group(0));  
    		 }
     
    	}
     
    }
    Il manque quelque chose mais je pense que j'en suis pas loin.

    en output j'aimerai ressortir :
    dir_listing, jdfgjkdfnbjkdfnbjnfdbndfjbndfbndfkb
    toto, tata
    nono, ueueue777

  9. #9
    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'essaye en vain de trouver le problème depuis ce matin grrr!
    c'est bizarre est ce mon pattern qui est mauvais encore ?

    Thinks

  10. #10
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Le groupe 0, c'est tout ce qui matche. Les autres sont numérotés de 1 à n. 2 dans ton cas...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #11
    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
    Citation Envoyé par joel.drigo Voir le message
    Le groupe 0, c'est tout ce qui matche. Les autres sont numérotés de 1 à n. 2 dans ton cas...
    J'avais déjà tester avec :
    System.out.println(m.group(1)); et System.out.println(m.group(2));
    mais rien n'y fait !
    J'ai rien dans ma console, pourtant ça a l'air d'être bon !

  12. #12
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Ton pattern ne correspond pas à ce que tu as dans ta variable fileName..

    Pourquoi à chaque fois tu repars sur un bout de code différent et moins fourni que les différentes étapes pour lesquelles tu sollicites de l'aide? Pourquoi tu as laissé tombé la lecture de fichier ligne par ligne pour coller son contenu sans les sauts de ligne dans une variable String?

    Je pense que tu te poses plus de problèmes qu'autres chose à essayer de segmenter les difficultés comme ça... A chaque étape tu recules dans ce que tu as déjà fait.

  13. #13
    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
    Citation Envoyé par eulbobo Voir le message
    Ton pattern ne correspond pas à ce que tu as dans ta variable fileName..

    Pourquoi à chaque fois tu repars sur un bout de code différent et moins fourni que les différentes étapes pour lesquelles tu sollicites de l'aide? Pourquoi tu as laissé tombé la lecture de fichier ligne par ligne pour coller son contenu sans les sauts de ligne dans une variable String?

    Je pense que tu te poses plus de problèmes qu'autres chose à essayer de segmenter les difficultés comme ça... A chaque étape tu recules dans ce que tu as déjà fait.
    oui je me complique la vie c'est vrai !!
    je met mon expression reguliere a la suite alors !

    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
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
     
    public class DetecteSymbole {
     
    	public static void main(String[] args) throws FileNotFoundException {
     
    		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);
     
    				if(ligne.matches("^set.*=.*")){
    				    //System.out.println("On récupère : " + ligne);
    				}
     
    			}
    			br.close(); // On ferme le flux
    		}		
    		catch (Exception e){
    			System.out.println(e.toString());
    		}
     
    		 Pattern p=Pattern.compile("^set(.*)=(.*)");
    		 Matcher m=p.matcher(fichier);
    		 while(m.find()) {
    			System.out.println(m.group(1));
     
     
     
     
    	}
     
    }
    }

  14. #14
    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
    Je n'obtiens toujours rien.
    hum il n'y aurait pas une autre méthode que celle de la capture de groupe?

  15. #15
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    Hello,

    Il y a plein de méthodes, c'est juste que la capture de groupes est la plus évidente.

    Ton problème c'est que quand tu cherches dans ta String géante, elle ne contient aucun saut de ligne et donc il n'y a pas de ligne à analyser. Et quand tu essaies de lire un fichier, ben... Tu le fais pas. Tu analyses son nom à la place, ça risque pas de marcher.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #16
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Je reprends ton code et je commente ligne à ligne pour te montrer ce qui me choque

    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
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
     
    public class DetecteSymbole {
     
    	public static void main(String[] args) throws FileNotFoundException {
    	
    		String fichier = "fichiertxtP2CSH.txt";
     
    		try{
    			InputStream ips=new FileInputStream(fichier);       
    			InputStreamReader ipsr=new InputStreamReader(ips);
    			BufferedReader br=new BufferedReader(ipsr);
    			String ligne;
    			while ((ligne=br.readLine())!=null){
    			
    				if(ligne.matches("^set.*=.*")){
    				    // Et du coup, tu ne fais rien ici? C'est ici que tu récupères ta ligne contenant set ...=... , faudrait peut-être la stocker quelque part non?
    				}
    				
    			}
    			br.close();
    		}		
    		catch (Exception e){
    			System.out.println(e.toString());
    		}
    		
    		 Pattern p=Pattern.compile("^set(.*)=(.*)");
    		 Matcher m=p.matcher(fichier); // ici, tu essaye de trouver un "match" sur la chaine contenue dans la variable fichier... Donc dans la chaine de caractère "fichiertxtP2CSH.txt"... 
    		// Tu vas pas trouver grand chose effectivement... Ce bout de code aurait un plus grand intérêt plus haut... dans l'autre boucle
    		 while(m.find()) {
    			System.out.println(m.group(1));
    
    		
    		
    		
    	}
    				
    }
    }

  17. #17
    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
    ah oui effectivement le probleme c'est que je lisai pas le contenu de mon fichier !
    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
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
     
     
    		public class RecupCleValeur {
     
    			public static void main(String[] args) throws FileNotFoundException {
     
    				String fichier = "C:\\Users\\ksmaili\\workspace\\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);
     
    						if(ligne.matches("^set.*=.*")){
    						    //System.out.println("On récupère : " + ligne);
    						}
    						 Pattern p=Pattern.compile("^set(.*)=(.*)");
    						 Matcher m=p.matcher(ligne);
    						 while(m.find()) {
    							System.out.println(m.group(1));
    							System.out.println(m.group(2));
    							}
     
    					}
    					br.close(); // On ferme le flux
    				}		
    				catch (Exception e){
    					System.out.println(e.toString());
    				}
     
     
     
    		}
    		}
    Du coup là sa marche mieux !!

    thinks a vouis

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

Discussions similaires

  1. Stocker une string dans un tableau de char à deux dimensions
    Par faitor1 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 03/03/2014, 03h12
  2. [c#][listbox]probleme afficher string et récupérer objet
    Par lachouke dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/05/2008, 17h55
  3. Réponses: 7
    Dernier message: 11/02/2006, 01h05
  4. Récupérer puis nommez des valeurs from un base MySQL
    Par nono3000 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 14/12/2005, 21h41
  5. [JList] notion de clé, couple clé - valeur affichée
    Par guipom dans le forum Composants
    Réponses: 2
    Dernier message: 26/03/2005, 02h00

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