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

JavaFX Discussion :

Lire une zone de texte ligne par ligne sous JavaFX


Sujet :

JavaFX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Markos22
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2016
    Messages : 198
    Par défaut Lire une zone de texte ligne par ligne sous JavaFX
    Bonjour,

    Dans une fenêtre JavaFX, j'ai créé une zone de texte (TextArea) et un bouton "écrire". Ce bouton écrire déclenche la méthode ecrire(), dont 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
     
    		String monTexte = zoneText.getText();
     
    		try {
    			File f = new File("texte.dat");
    			FileWriter fw = new FileWriter(f);
    			BufferedWriter bw = new BufferedWriter(fw);
     
    			bw.write(monTexte);
     
    			bw.close();
    			fw.close();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    Tout fonctionne parfaitement à un détail près : les retour à la ligne ont disparu ! Tout est aligné en une seule ligne. Or, je veux conserver les retour ligne, parce qu'ils sont signifiants : il s'agit de données qui donnent lieu à des calculs, chaque ligne formant une entité séparée.

    Comment puis-je reproduire le contenu de ma TextArea à l'identique dans le fichier cible ? Y a-t-il un autre composant JavaFX plus adapté, genre "text editor", qui prendrait en compte les retours à la ligne ?

    Merci de vos suggestions, et à bientôt !

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par défaut
    Et, euh, tu es sous Windows ?
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre confirmé Avatar de Markos22
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2016
    Messages : 198
    Par défaut
    Citation Envoyé par bouye Voir le message
    Et, euh, tu es sous Windows ?
    Oui, je suis sous Windows, mais j'espère que ce n'est pas ce qui fait que la fin de ligne n'est pas perçue dans le TextArea. Un programme Java est censé fonctionner pour n'importe quel système d'exploitation. J'ai configuré Eclipse pour qu'il soit encodé en UTF-8 (et non en encodage Windows), mais il n'y a peu-être pas de rapport...

    Mais existe-t-il un moyen de lire la textArea ligne par ligne ?

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par défaut
    Je ne suis pas sur que tu ais compris le sens de ma question (voir le lien qui était inclus dans la phrase).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre confirmé Avatar de Markos22
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2016
    Messages : 198
    Par défaut
    J'ai bien compris la question, j'ai bien vu le lien. Mais que proposes-tu pour contourner ce problème ? A ton tour, comprends-tu bien qu'un programme Java doit s'adapter à tous les environnements (write once, run everywhere) ?
    Le texte à envoyer au fichier texte vient d'un composant JavaFX : TextArea. A ma connaissance, ce composant n'est pas estampillé "Windows". L'encodage de caractères de l'application n'est pas Windows non plus... Alors, que faire ? Me montrer les turpitudes de Windows ne me sert à rien, ça ne m'aide pas à avancer...

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par défaut
    La propriété système line.separator te permet de récupérer le séparateur de ligne de l'OS sous-jacent.

    Je ne nie pas qu'il y a peut-être un soucis MAIS tu t'es immédiatement focalisé sur TextArea. Or, as-tu seulement fait des tests sans interface graphique pour savoir si juste écrire des blocs de texte dont les lignes se terminent par \n ne posaient exactement pas le même soucis ? Ce qui, si jamais cela se produit, aurait vite mis en évidence que le problème n'est pas forcément lié à ton UI mais peut-être à la manière dont tu écris des fichiers textes. De même as-tu vérifié dans un autre éditeur que notepad / le bloc-note que tu pouvais lire tes fichiers correctement (il y en a pléthore sous Windows qui supportent très bien les deux formats de fin de ligne ou qui permettent de faire la conversion de l'un à l'autre).

    Si le soucis vient de là, hé bien la réponse est facile : avant d'écrire le fichier, tu substitues tes \n par le caractère / la chaîne approprié(e) et basta.

    Faites des tests les gens, soyez un peu curieux de temps à autres .
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/03/2016, 19h48
  2. Réponses: 3
    Dernier message: 13/12/2006, 14h03
  3. Modifier une zone de texte désigné par la fonction eval(concat de variables)
    Par Franck2mars dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 19/07/2006, 11h43
  4. Taille d'une zone de texte dans un état sous Access 2003
    Par Petite grenouille dans le forum Contribuez
    Réponses: 4
    Dernier message: 15/05/2006, 19h39
  5. Réponses: 2
    Dernier message: 19/01/2006, 19h33

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