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

Langage Java Discussion :

Lecture d'un double dans un fichier


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Par défaut Lecture d'un double dans un fichier
    Bonjour,
    pour lire un fichier texte dans un programme JAVA, j'ai trouvé quelques difficultés au niveau des doubles (j'ai un fichier avec plusieurs doubles)
    Exemple : lire le double 33.12
    J'ai déclarer un scanner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Scanner Scan = new Scanner(new File(nomFichier));
    Pour la lecture j'utilise

    Quand j'écris le double avec une virgule "33,12" dans le fichier, je n'arrive à le lire, par contre quand le double est noté avec un point "33.12", la lecture est impossible.

    Pouvez vous me donner des informations sur ce problème.

    Merci d'avance

    Lui

  2. #2
    Membre éprouvé Avatar de nabodix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 93
    Par défaut
    Parce que ces anglais ne sont pas foutu de faire comme nous , et considèrent le "." comme une virgule et utilise parfois la "," pour séparer des groupe de 3 chiffres (par ex cinq million==> 5,000,000 )

    Mais ca ne règle pas ton problème..

    Il y a plusieurs manières de le régler, mais je ne sais pas quelle serait la plus optimal/facile/adéquate ..

    -Tu pourrais par exemple remplacer tout les "," par des "."
    -Tu pourrais faire un truc farfelu du genre lire le prochain int, et si il est suivit d'une "," puis d'un int, faire une sorte de "concaténation" en double (ou un truc du genre..)
    -et surement autrement..

    Sinon faudrait un peu chercher le web, tu ne doit clairement pas être le premier (première?) à te poser la question..

    D'ailleurs, ca m'intéresserait aussi de savoir ce qui serait le plus simple/optimal/..

    Xa

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par nabodix Voir le message
    Parce que ces anglais ne sont pas foutu de faire comme nous , et considèrent le "." comme une virgule et utilise parfois la "," pour séparer des groupe de 3 chiffres (par ex cinq million==> 5,000,000 )
    Il n'y a pas que les anglais... Et si en France on utilise un espace insécable comme séparateurs de milliers, d'autres utilise le point ou encode une simple quote...

    Bref il ne s'agit que de différences linguistiques ou régionales.


    Citation Envoyé par nabodix Voir le message
    Il y a plusieurs manières de le régler, mais je ne sais pas quelle serait la plus optimal/facile/adéquate ..

    -Tu pourrais par exemple remplacer tout les "," par des "."
    -Tu pourrais faire un truc farfelu du genre lire le prochain int, et si il est suivit d'une "," puis d'un int, faire une sorte de "concaténation" en double (ou un truc du genre..)
    Désolé mais tout cela s'apparente à du bidouillage...

    Pour prendre en compte les caractéristiques linguistiques ou régionales, il suffit de spécifier la locale désiré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	Scanner scanner = new Scanner(...);
    	scanner.useLocale(Locale.US);
    En sachant que par défaut c'est la locale du système qui sera utilisé, à moins qu'on ne la change de manière globale pour l'application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	Locale.setDefault(Locale.US);

    a++


    PS : luilui : les noms de variables commencent toujours par une minuscule. C'est une bonne habitude à prendre pour avoir un code lisible

  4. #4
    Membre éprouvé Avatar de nabodix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 93
    Par défaut
    Ah oui, c'est clair que c'est plus propre ainsi! merci.. J'ai appris qqch d'intéressant

    (Mais sinon, j'ai bien spécifié que c'étaient des propositions, limite farfelue, et qu'il y en avaient surement d'autre plus adéquates, et ce n'était pas indispensable de le souligner, mais bon, c'est pas grave, je suis pas vexé et ce fut intéressant )

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par nabodix Voir le message
    et ce n'était pas indispensable de le souligner, mais bon, c'est pas grave, je suis pas vexé et ce fut intéressant )
    L'objectif n'était pas de te vexer, mais tout simplement de ne pas partir vers des solutions qui s'avère complexe à mettre en place... surtout lorsque tout ceci est déjà géré

    a++

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Par défaut
    Merci pour vos réponses
    J'ai ajouté les deux lignes dans mon programme, mais j'arrive pas a lire mon fichier (des exceptions)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Scanner scanner = new Scanner(...);
    scanner.useLocale(Locale.US);
    Merci

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

Discussions similaires

  1. Lecture de valeurs doubles dans un fichier
    Par Marimo dans le forum Bibliothèque standard
    Réponses: 4
    Dernier message: 27/03/2014, 00h45
  2. C++ lecture d'un tableau dans un fichier
    Par nicoss dans le forum C++
    Réponses: 1
    Dernier message: 28/05/2006, 10h26
  3. Réponses: 4
    Dernier message: 12/10/2005, 21h22
  4. [JList] Lecture des données sauvegardées dans un fichier
    Par Myogtha dans le forum Composants
    Réponses: 7
    Dernier message: 10/06/2004, 21h05
  5. [C#] [.NET] Lecture d'une classe dans un fichier
    Par niPrM dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/05/2004, 08h57

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