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 :

Passer à la ligne suivante .txt


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut Passer à la ligne suivante .txt
    Bonjour à tous,
    Je dispose d'un fichier txt dont le contenu se présente comme suit:
    Nom0;Prenom0;note0
    Nom1;Prenom1;note1
    Nom2;Prenom2;note2
    Nom3;Prenom3;note3
    Pour afficher les données, j'ai mis en place cette méthode
    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
    public void Lire(){
    		String nom,prenom,note;
    		try {
    			BufferedReader sortie = new BufferedReader(new FileReader("Etudiant.txt"));
    			String lireLigne = sortie.readLine();
    			String[] ligneLue = lireLigne.split(";");
    			nom = ligneLue[0];prenom = ligneLue[1];note = ligneLue[2];
    						txtNom.setText(nom);txtPrenoms.setText(prenom);txtNote.setText(note);	
     
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    Le programme fonctionne avec affichage d'une seule ligne ce qui est normal. Mon problème est que je voudrais mettre en place une action sur un bouton qui me permettra de naviguer dans le fichier afin d'afficher les lignes suivantes au clique de la souris.

    Merci de votre aide.

  2. #2
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Par défaut
    Bonjour,

    Et bien aucun problème, tu fait un readLine() à chaque clique bouton .

    Ou bien tu charges ton fichier en mémoire (dans un tableau de String par exemple) et tu avance d'une case à chaque clique.

  3. #3
    Membre éprouvé Avatar de bygui
    Homme Profil pro
    PLM/ALM
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : PLM/ALM
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Par défaut
    Voici le code pour la lecture normal d'un 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
     
    try{
    			InputStream ips=new FileInputStream(fichier); 
    			InputStreamReader ipsr=new InputStreamReader(ips);
    			BufferedReader br=new BufferedReader(ipsr);
    			String ligne;
     
    			while ((ligne=br.readLine())!=null){
    //ici tu fais ton traitement
    			}
    			br.close(); 
    		}		
    		catch (Exception e){
    			System.out.println(e.toString());
    		}
    Ensuite, si tu veux avancer dans ton fichier en forçant l'utilisateur à appuyer sur un bouton il suffit que tu utilise le bufferedReader et de lire ta ligne.

    Une fois le traitement terminée, n'oublie pas de fermer les flux!

  4. #4
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut
    Avec cette méthode :
    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
    public void Lire(){
    		String nom,prenom,note;
    		try {
    			InputStream ips = new FileInputStream("Etudiant.txt");
    			InputStreamReader ipsr = new InputStreamReader(ips);
    			BufferedReader sortie = new BufferedReader(ipsr);
    			String ligne;
    			String[] ligneLue;
     
    			while((ligne=sortie.readLine())!= null){
    				ligneLue = ligne.split(";");
    				nom = ligneLue[0];prenom = ligneLue[1];note = ligneLue[2];
    				txtNom.setText(nom);txtPrenoms.setText(prenom);txtNote.setText(note);
    			}
    			ipsr.close();
    			sortie.close();
     
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    Le programme affiche seulement la dernière ligne. Comment faire pour qu'au premier lancement, il se positionne sur la première. On pourra ensuite avancer dans le fichier en forçant l'utilisateur à cliquer sur un bouton ?

  5. #5
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    bonjour,

    c'est normal, avec ce code, tu parcours tout le fichier et ensuite tu fermes le flux, donc une fois terminé tu as la dernière ligne dans txtNom!

    Si tu veux que cela marche il faut que tu ouvres le fichier à un autre moment et que tu fasses le sortie.readLine() sur le clique du bouton.
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut
    Citation Envoyé par Alkhan Voir le message
    Si tu veux que cela marche il faut que tu ouvres le fichier à un autre moment et que tu fasses le sortie.readLine() sur le clique du bouton.
    J'ai pas très bien compris cette partie. Est-ce possible (s'il te plaît) de faire un exemple ?

  7. #7
    Membre éprouvé Avatar de bygui
    Homme Profil pro
    PLM/ALM
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : PLM/ALM
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Par défaut
    - Tu créés une classe qui dans son constructeur ouvre un flux de lecture sur le fichier. Tu lui ajoute une méthode pour lire une seul ligne, c'est a dire le readline() et ensuite une autre pour fermer le flux.

    - Dans la classe de ton IHM Tu créés ton bouton et dans son évènement tu feras appelles à une méthode qui exécutera le traitement désiré en utilisant ta méthode de lecture ligne par ligne.

    - Lorsque ton application se ferme ou lorsque tu as finit de traiter le fichier tu utilises la méthode pour fermer le flux.

Discussions similaires

  1. [XL-2003] Bouton permettant de passer à la ligne suivante
    Par zazrun dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/02/2012, 17h23
  2. [XL-2007] Code pour passer à la ligne suivante si une est déja prise
    Par toushusss dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/06/2011, 16h05
  3. Passer à la ligne suivante par un commandbutton
    Par ThSPB dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/03/2011, 17h37
  4. Réponses: 14
    Dernier message: 19/11/2010, 10h28
  5. Passer à la ligne suivante (ReadLine());
    Par Rusty2096 dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 08/07/2009, 08h10

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