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 :

Extraire des données à partir d'un fichier


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Extraire des données à partir d'un fichier
    Bonjour
    Je débute en java et j'aimerais bien que vous me débloquer sur l'extraction de données à partir d'un fichier ,mon fichier ce formalise comme suit:
    #instancemusee // le nom du fichier
    # oeuvres 3 // je veux extraire le 3 sachant qu'il y'a un espace en le# et //oeuvres et un autre oeuvres et 3.
    # 1 10 2 5 // placer les valeurs dans un tableau entre les valeurs il ya un espace
    # 3 5 2 10
    # 3 5 3 5
    digraph G {
    1->2[label=0] // prendre c'est valeurs et les mettre dans une matrice
    2->3[label=3]
    2->3[label=0]
    4->4[label=0]
    }
    Merci d'avance de votre aide

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 130
    Points : 276
    Points
    276
    Par défaut
    Pour commencer => la FAQ sur la lecture d'un fichier ligne par ligne

    As tu déja coder quelque chose ?

    montre nous ce que tu as fait et apres on pourra t'aider
    MigouW

    La seule bataille perdue d'avance est celle que l'on refuse de livrer.


    Pensez au tag
    Ma réponse vous a été utile, votez plus 1 sur le message.
    Ma réponse est hors sujet, votez moins 1 sur le message.

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Voila mon 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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    import java.io.BufferedReader;
    	import java.io.BufferedWriter;
    	import java.io.File;
    	import java.io.FileReader;
    	import java.io.FileWriter;
    	import java.io.IOException;
    	import java.util.StringTokenizer;
     
    // la classe Fichier permet de créer le fichier ,avec des fonction de lecture et d'écriture sur le fichier
     
    	public class Fichier {
     
    	 // Propriétés de la classe
    	 private   BufferedWriter fW;
    	 private   BufferedReader fR;
    	 private   String urlFichier;
     
    	 // Méthode en set pour initialiser l'url d'accès au fichier à traiter
    	 public void setUrlFichier(String tmp){
    	      urlFichier = tmp;
    	 }
    	 // Ouvrir un fichier en lecture
    	 public boolean  ouvrirEnLecture(String nf) {
     
    		try {
    	            setUrlFichier(nf);
    	            File f = new File(urlFichier);
    	            // Création d'un flux en lecture ligne par ligne
    		    fR  = new BufferedReader(new FileReader(f));
    	            fW = null;
    	            return true;
    		}
    	        // Si une erreur est détéctée (le fichier n'existe pas, ...)
    		catch (IOException e)	{
    	                // afficher le message d'erreur
    	                System.out.println(urlFichier+" : Erreur  à l'ouverture en lecture");
    			return false;
    		}
    	 }
     
    	 // Lire le flux en lecture ligne par ligne
    	 public String lire()  {
    	     // Essayer de réaliser les instructions suivantes :
    	     // Si aucune erreur n'est détectée, exécuter les instructions du bloc try
    	     // Sinon exécuter les instructions du bloc catch
    	     try {
    	         // Lire la ligne courante et la retourner au  programme appelant
    		String chaine = fR.readLine();
    		return chaine;
    	        }
    	        // Si une erreur est détéctée (le fichier n'est pas ouvert en lecture, ...)
    		catch (IOException err) {
    	                 // afficher le message d'erreur
    			System.out.println(urlFichier+" : Erreur  de lecture ");
    	                return null;
    		}
    	 }
    public String [] ExtraireDonnees(String tmp){
     
     
    	if (tmp!= null){
    		if(tmp=="oeuvres"){
    			System.out.println(1);
    		}
    	}
    	return null;
    }
    	 // Découper les données d'une ligne
    	 public String [] extraireDonnees(String tmp)  {
    	    if (tmp != null) {
    	      // Créer un outil qui découpe  la chaine passée en paramètre (premier paramètre)
    	      // en utilisant le le # (second paramètre) pour séparer les mots
    	      StringTokenizer st = new StringTokenizer(tmp,"#");
    	      int i=0;
    	      // Créer un tableau à la taille du nombre de mots à extraire
    	      String mot[] = new String[st.countTokens()];
    	      // Parcourir l'ensemble des mots à extraire
    	      while (st.hasMoreTokens()) {
    	          // Les mémoriser dans un tableau
    	         mot[i] = st.nextToken();
    	         i++;
    	       }
    	       // Retourner le tableau contenant les mots extraits
    	       return mot;
    	     }
    	     else return null;
    	 }
     
    	 // Fermer le fichier ouvert en lecture ou en écriture
    	 public boolean fermer()  {
    	     // Essayer de réaliser les instructions suivantes :
    	     // Si aucune erreur n'est détectée, exécuter les instructions du bloc try
    	     // Sinon exécuter les instructions du bloc catch
    	     try {
    	       if (fR != null) fR.close();
    	       else  if (fW != null) fW.close();
    	       return true;
    	     }
    	      // Si une erreur est détéctée (le fichier n'existe pas, n'est pas ouvert, ...)
    	     catch (IOException err) {
    	         // afficher le message d'erreur
    		System.out.println(urlFichier+" : Erreur  à la fermeture ");
    	        return false;
    	     }
    	 }
    	  // Ouvrir un fichier en écriture
    	  public boolean  ouvrirEnEcriture(String nf) {
     
    		try {
    	            setUrlFichier(nf);
    	            File f = new File(urlFichier);
    	             // Création d'un flux en écriture ligne par ligne
    		    fW = new BufferedWriter(new FileWriter(f));
    	            fR = null;
    	            return true;
    		}
    	         // Si une erreur est détéctée (le fichier n'existe pas, ...)
    		catch (IOException e)	{
    	                // afficher le message d'erreur
    	                System.out.println(urlFichier+" : Erreur  à l'ouverture en écriture ");
    			return false;
    		}
    	 }
     
    	 // Ecrire dans le flux ouvert en écriture ligne par ligne, passer à la ligne 
    	 public boolean ecrire(String tmp) {
     
    	      try {
    	 	if (tmp != null)   {
    	                // Ecrire la chaine tmp du caractère 0 jusqu'à la fin du mot
    			fW.write(tmp,0,tmp.length());
    	                // Passer à la ligne suivante
    			fW.newLine();
    		}
    	        return true;
    	        }
    	       // Si une erreur est détéctée (le fichier n'est pas ouvert en écriture
    		catch (IOException err) {
    	                 // afficher le message d'erreur
    			System.out.println(urlFichier+" : Erreur  d'écriture ");
    	                return false;
    		}
    	   }
    	}
     
     
     
     
    // maintenant la classe Lecture qui permet de lire le fichier et placer les caractères dans un tableau
     
    public class Lecture {
    	public static void main(String [] args)
    	//listeOeuvres=new Oeuvres[10];
    {  
            String []info=new String[50];
            String [][]Matrix;
    	String chaine;
            //public static void initMatrix(){ }
     
     
       Fichier fic=new Fichier ();
       fic.ouvrirEnLecture("D:/eclipse/fichiertext.txt");
    	do{
    	chaine=fic.lire();
    	if(chaine!=null){
    	//System.out.println(chaine);
    	info=fic.extraireDonnees(chaine);
    	}}while(chaine!=null);
    //for (int i=0;i<info.length;i++){
    //	System.out.println("*****");
    //	System.out.println(info[i]);
     
    }
    }
    en fait le vrai problème c'est la fonction extraireDonnees j'utilise quelle caractères pour la détection et qui me permet d'extraire les valeurs.

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    En fait j'ai changer la Fonction extraireDonnees() maintenant mon code est comme suit:
    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
     
    public String[] extraireDonnees(String tmp) {
     
    if (tmp != null) {
    // Créer un outil qui découpe la chaine passée en paramètre (premier paramètre)
    // en utilisant le point-virgule (second paramètre) pour séparer les mots
    StringTokenizer st = new StringTokenizer(tmp," ");
    int i=0;
    // Créer un tableau à la taille du nombre de mots à extraireé
    String mot[] = new String[st.countTokens()];
     
    // Parcourir l'ensemble des mots à extraire
    while (st.hasMoreTokens()) {
    // Les mémoriser dans un tableau
    mot[i] = st.nextToken();
    i++;
    }
    // Retourner le tableau contenant les mots extraits
    return mot;
    }
    else return null;
    }
     
     
     
     
    // ma classe princpale
     
    Code Java :
     
     
    public class Lecture {
    public static void main(String [] args)
    //listeOeuvres=new Oeuvres[10];
    {
    String []info;
    String [][]Matrix;
    String chaine;
     
     
     
    Fichier fic=new Fichier ();
    fic.ouvrirEnLecture("D:/eclipse/fichiertext.txt");
    do{
    chaine=fic.lire();
    if(chaine!=null){
    //System.out.println(chaine);
    info=fic.extraireDonnees(chaine);
    //System.out.println(info[2]);
     
    }}while(chaine!=null);
     
    }}

  5. #5
    Membre actif Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Points : 278
    Points
    278
    Par défaut
    Salut,

    comment est le fichier (txt, xml...) ? peut avoir un extrait (réel) du fichier ?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Je rencontre un problème similaire. Je dois extraire des données de mon fichier
    digraph G { a01 -> a06; a06 -> a02; a02 -> a04; a03 -> a01; a03 -> a05; a05 -> a06;}

    Comment faire?

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Points : 446
    Points
    446
    Par défaut
    Il te faut récupérer cette ligne de ton fichier et la traiter.
    Dans ton traitement, tu conserve tout ce que tu as entre '{' et '}'
    Ensuite, tu "découpe" ta chaine avec split sur les ';' et pour chaque item découpé, tu le redécoupe sur le " -> ".
    Ainsi tu obtiens une paire de valeur.
    Il est agréable d'avoir le choix. La difficulté est alors de faire le bon (ou le moins pire).

Discussions similaires

  1. [Débutante] Extraire des données à partir d'un fichier html avec xsl
    Par sab_etudianteBTS dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 11/03/2008, 09h10
  2. extraire des données à partir d'un fichier texte
    Par bigplayer dans le forum Langage
    Réponses: 3
    Dernier message: 03/04/2007, 21h33
  3. [VBA-E] extraire des données à partir d'une autre feuille
    Par zzman dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/01/2007, 13h26
  4. récuperer des données à partir d'un fichier écrit en HTML
    Par moabomotal dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 01/11/2006, 19h50
  5. Réponses: 8
    Dernier message: 22/08/2006, 12h51

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