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 :

Lecture d'un fichier non organisé


Sujet :

Entrée/Sortie Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 100
    Par défaut Lecture d'un fichier non organisé
    Salut les amis;
    Svp, j'ai un fichier qui contient des informations des clients sous la forme suivante :

    Jean jaque
    France
    Médecin

    Patrick j-j
    Belgique
    Ingénieure

    Bernard Verts
    Allemagne
    Professeure

    Sachant qu’il y a une ligne vide entre chaque 3 ligne.
    savez vous comment faire.

    Je veux écrire un programme qui me permet d'organisé ces informations comme suite

    jean jaque, France, médecin
    Patrick j-j, Belgique, ingénieure
    Bernard verts, Allemagne, Professeure
    ...etc
    merci

  2. #2
    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
    A priori, tu es en train de dire que tu veux remplacer les fins de lignes simples par des virgule espace, et les doubles fins de lignes par des simples fins de lignes.

    Non ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 100
    Par défaut
    merci thelvin,
    oui, exactement , avez vous une iddée.

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 100
    Par défaut
    Bonsoir,

    Une idée serait de parcourir le fichier avec Scanner et dès que tu trouvres une ligne vide k tu remontes les lignes de k-1 à k-3 et t'extraits les informations et tu les ranges dans une List<List>, chaque élèment de ta List est une liste qui contient les informations: nom,profession, pays.

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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
    Par défaut
    Ce que tu peux faire c'est parcourir ton fichier d'entrée avec un scanner par exemple.
    Tant que tout le fichier n'est pas lu
    Si la ligne lue n'est pas vide
    tu ajoute le contenu de la ligne a un buffer et tu lui ajoute une ','.
    Sinon, tu écris le contenu de ton buffer dans le fichier de sortie et tu vides ton buffer

    Lorsque tout le fichier est lu, si le buffer n'est pas vide, tu écris son contenu dans le fichier de sortie.

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    Je ne pense pas que ton problème vienne de java mais plus de tes compétences en algorithmique.

  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
    Voilà pour le parsage du fichier
    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
    //File source = Ton fichier...
    Scanner myScanner = new Scanner(source);
    String myLine = null;
    List<Info> myList = new ArrayList<Info>();
    Info myInfo = new Info();
    while(myScanner.hasNextLine())
    {
    	myLine = myScanner.nextLine();
    	if(myLine .isEmpty()){
    		myList.add(myInfo);
    		myInfo= new Info();
    	}
    	else
    	{
    		myInfo.add(myLine);
    	}
    }
    Voilà pour ma classe Info
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class Info{
    	private List<String> myList = new ArrayList<String>();
    	public void add(String info){
    		this.myList.add(info);
    	}
    }
    Voilà pour le parsage pur.

    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.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 100
    Par défaut
    merci, mais comment récupérer les résultats ?

  9. #9
    Membre émérite Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Par défaut
    Dans le code fourni par kolodz, il te suffit de parcourir la liste myList. As toi de voir ce que tu veux en faire exactement.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 100
    Par défaut
    comment dire au programme de remplacé les nouvelles ligne par des virgules, et de supprimer les ligne vide

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

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 130
    Par défaut
    Bonjour,

    Comment te dire de Regarder la javadoc sur la classe String, et réfléchir a comment faire un if ?

Discussions similaires

  1. empêcher la lecture d'un fichier non encore créé
    Par supcomingenieur dans le forum Langage
    Réponses: 13
    Dernier message: 24/05/2013, 00h05
  2. [Free Pascal] Erreur de lecture de fichier non typé
    Par bubulemaster dans le forum Free Pascal
    Réponses: 5
    Dernier message: 05/02/2010, 14h14
  3. Réponses: 2
    Dernier message: 01/05/2009, 16h13
  4. Réponses: 8
    Dernier message: 25/09/2007, 08h31
  5. [ifstream] pb lecture fichier non sequentielle
    Par bludo dans le forum SL & STL
    Réponses: 3
    Dernier message: 10/02/2005, 21h30

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