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 :

extraction des données du fichier txt


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut extraction des données du fichier txt
    Bonjour a tous,
    svp j'ai besoin de votre aide, j'ai un fichier .txt sous la forme suivante( c'est plutot un tableau):

    nom prenom age adresse ...
    sss e 21 m8 ..
    po up 18 po ..
    etc...

    selon le nom,je veux extraire le prenom, l'age..., j'ai essayer de travailler avec bufferedreader pour lire la ligne et puis StringTokenizer pour l'extraction des champs, mais ça marche pa
    si quelqu'un peut me donner une idée ça sera tré sympa!
    merci d'avance pour votre aide

  2. #2
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Sans code & sans erreur difficile de dire d'où vient le problème

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut

    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
     
    		         {
    		            FileReader fr = new FileReader("c:/exemple.txt");
    		            BufferedReader br = new BufferedReader(fr);
     
    		          while (( s = br.readLine())!= null)
    		           {      			        	  
    		     	      StringTokenizer st = new StringTokenizer(s, " " );
    		      	      while(st.hasMoreTokens())
    		      	      {    
    		      	    	if(st.nextToken().equals(identifiant))
    		                  {        
    		      	    		System.out.println(st.nextToken());
    		                      chaine=chaine+s;  
    		                  }	     else System.out.println("erreur");     
    		              }
    		           }   br.close();
    		           return chaine;}
    comme résultat, il ne s'affiche que "erreur", le pbm est dans le bloc "if", je sais pa c quoi exactement, votre aide svp

  4. #4
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Au lieu d'utiliser StringTokenizer, tu utiliser la fonction split

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String[] data = s.split(s, " "); 
    // Dans data tu as les donnees dans data[0], data[1], ...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 9
    Par défaut
    c'est normal qu'il affiche erreur car c'est exactement ce que tu lui demande, regarde ton code( tant que ta ligne contient des token il compare le next token a identifiant) meme si le 1er token = identifiant tu continue le test avec les autre tokens^^
    essaye ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	if(st.nextToken().equals(identifiant))
    		                  {        
    		      	    		System.out.println(st.nextToken());
    		                      chaine=chaine+s; 
                                                 break;
     
    		                  }
    ou tout simplement remplace ta boucle while par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if (st.hasMoreTokens())
    if au lieu de while, pers nellement je prefere la 1ere solution

    attention tu peux pas combiner les 2.

  6. #6
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Bonjour,

    il ne s'affiche que "erreur", le pbm est dans le bloc "if"
    La chaîne "erreur" ne s'affiche que si le test conditionnel retourne false.

    Tu ne nous donne pas de valeur pour identifiant.

    Aussi, est-ce que la première ligne que tu nous donne
    (nom prenom age adresse ...) fait partie du fichier ?

    Si oui, alors en posant String identifiant = "sss"; par exemple,
    alors ta condition sera toujours fausse puisque la première chaîne tokenizée est "nom".

    Tu peut utiliser un System.out.println(); pour voir ce qui ce passe.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut
    bonjour,
    tt d'abord merci pr tous pour votre aide

    Citation Envoyé par polymorphisme Voir le message

    Aussi, est-ce que la première ligne que tu nous donne
    (nom prenom age adresse ...) fait partie du fichier ?

    Si oui, alors en posant String identifiant = "sss"; par exemple,
    alors ta condition sera toujours fausse puisque la première chaîne tokenizée est "nom".
    en faite la 1ére ligne (nom prenom ...) fait partie du fichier, mais je veux faire le test sur le reste du fichier selon le nom a chaque fois(sss), puis extraire les autres données correspondantes, j'ai eu l'idée d'utiliser stringTokenizer avc /n comme separateur sur tt le fichier pour séparer les lignes puis ça sera plus simple de travailler avec "contains" ou "startsWith" sur chaque ligne, mais je sais pas si je peux travailler avec mon fichier comme étant String (StringTokenizer st = new StringTokenizer(???, "/n"))

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

Discussions similaires

  1. Extraire des données dans fichier txt
    Par islande dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 28/03/2013, 13h42
  2. extraction des données de fichier txt dans un tableau?
    Par lina_21 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 18/03/2010, 11h47
  3. Extraction des données vers un fichier EXCEL
    Par vanesa dans le forum SQL
    Réponses: 4
    Dernier message: 29/10/2008, 15h29
  4. Extraction des données "images" d'un fichier DICOM
    Par FloFox dans le forum Traitement d'images
    Réponses: 7
    Dernier message: 21/06/2007, 10h11
  5. [débutant]extraction des données d'un fichier xml simple
    Par ekram dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 14/03/2007, 12h24

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