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

avec Java Discussion :

Problème de récupération du contenu des variables


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Data Lover
    Inscrit en
    Décembre 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data Lover
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 96
    Par défaut Problème de récupération du contenu des variables
    Salut !

    J'ai un problème de récupération du contenu de ces deux variables : n1 et n2 dans le code ci-dessous :

    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
     
    try{
                InputStream flux = new FileInputStream("file.txt"); 
                InputStreamReader lecture = new InputStreamReader(flux);
                BufferedReader buff = new BufferedReader(lecture);
                String ligne, ligne1;
     
                while ((ligne = buff.readLine())!=null)
                {
                    if(ligne.startsWith("k"))
                    {
                        first = Integer.parseInt(ligne.substring(6, 9));
                        second = Integer.parseInt(ligne.substring(10, 13));
                    }             
                }
     
                while ((ligne1 = buff.readLine())!=null)
                {
                    if(ligne1.startsWith("e"))
                    {
                        int ind1 = ligne1.lastIndexOf(" ");
                        n1 = Integer.parseInt(ligne1.substring(2, ind1));
                        n2 = Integer.parseInt(ligne1.substring(ind1+1));
                    }
                }
                buff.close(); 
                }
                catch (Exception e){
                System.out.println(e.toString());
                }
               // Je veux afficher leurs contenus ici mais elles ont comme contenu 0
                System.out.println(first); // ça marche
                 System.out.println(n1); // ça marche
               System.out.println(n1); // ne marche pas contenu 0
               System.out.println(n2); // ne marche pas conetu 0
    Merci !

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    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
    while ((ligne = buff.readLine())!=null)
                {
                    if(ligne.startsWith("k"))
                    {
                        first = Integer.parseInt(ligne.substring(6, 9));
                        second = Integer.parseInt(ligne.substring(10, 13));
                    }             
                }
     
                while ((ligne1 = buff.readLine())!=null)
                {
                    if(ligne1.startsWith("e"))
                    {
                        int ind1 = ligne1.lastIndexOf(" ");
                        n1 = Integer.parseInt(ligne1.substring(2, ind1));
                        n2 = Integer.parseInt(ligne1.substring(ind1+1));
                    }
                }
    Tu fais 2 boucles : la première lit l'ensemble du flux disponible jusqu'à la fin, et fait un traitement sur toutes les lignes lues qui commencent par k.
    La seconde boucle fait la même chose mais le traitement est fait pour lignes qui commencent par e.

    A ton avis, quand la seconde boucle commence, vu qu'on a lu l'ensemble du fichier, que reste-t-il à lire dans le fichier ?

    Solution : ne faire qu'une boucle, et faire les 2 traitements dans cette boucle, vu que ces traitements sont exclusifs et ne dépendent pas l'un de l'autre (sinon, il faudrait fermer le fichier et le réouvrir pour le relire depuis le début dans une seconde boucle).
    En supposant qu'il n'y ait qu'une ligne qui commence par k (ton programme ne conserve que les informations extraites de la dernière lue de toute manière), et que la seule ligne qui commence par e soit forcément après celle qui commence par k, tu pourrais utiliser 2 boucles, mais en forçant la sortie de la première dès la rencontre de la ligne qui commence par k, avec break dans le if.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre éclairé
    Homme Profil pro
    Data Lover
    Inscrit en
    Décembre 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data Lover
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 96
    Par défaut
    Merci beaucoup Joel pour ta réponse. Je crois que dans mon cas la solution serait de rouvrir le fichier et l'utiliser dans une nouvelle boucle. Je croyais qu'à part ouvrir le fichier une deuxième fois, il y avait encore une autre possibilité. Comme c'est le cas, je vais le faire ainsi.

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

Discussions similaires

  1. Problème de syntaxe pour concaténer des variables
    Par renaud26 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/09/2006, 09h44
  2. Réponses: 2
    Dernier message: 29/08/2006, 20h56
  3. [VB.NET] Vider le contenu des Variables
    Par linutx dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/07/2006, 21h31
  4. récupération du contenu de variables
    Par Sebastien_INR59 dans le forum Access
    Réponses: 3
    Dernier message: 03/06/2006, 01h03
  5. Contenu des variables...
    Par jula dans le forum Linux
    Réponses: 5
    Dernier message: 13/04/2005, 17h44

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