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 :

Mettre dans un tableau à deux dimensions le contenu d'un fichier texte


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 102
    Points : 44
    Points
    44
    Par défaut Mettre dans un tableau à deux dimensions le contenu d'un fichier texte
    Bonjour,

    J'ai essayé de mettre le contenu d'un fichier texte dans un tableau à deux dimensions, mais j'ai remarqué que seule la dernière donnée est stockée. Voici le code en question:

    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
        private static void lireFichier(String nomFichier, double[][] joursDates) throws IOException
        {
            String ligne = "";
            BufferedReader lecteurFichier = null;
            lecteurFichier = new BufferedReader(new FileReader(nomFichier));
            int annee = Integer.parseInt(lecteurFichier.readLine());
            while ((ligne = lecteurFichier.readLine()) != null)
            {
                for (int i = 0; i < joursDates.length; i++)
                {
                    for (int j = 0; j < joursDates[i].length; j++)
                    {
                        joursDates[i][j] = Double.parseDouble(ligne);
    //                     System.out.println(joursDates[i][j]);
                    }
                }
            }
            lecteurFichier.close();
        }
    Je peux aussi fournir le fichier texte en question si besoin.

    Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juin 2006
    Messages : 169
    Points : 80
    Points
    80
    Par défaut
    normal quand tu es a la dernière ligne tu parcours ton tableau. Je sais pas si je suis clair.

    Tu parcours ton fichier avec le while et pour chaque ligne de ton fichier tu parcours ton tableau...

    Fournis ton fichier

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 102
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    Le fichier est en faite une série de températures relevées durant l'année 2010. Voici une partie (le fichier fait 366 lignes)

    -4.0
    -2.9
    4.0
    0.0
    -3.0
    -1.7
    -2.1
    -3.6
    -9.2
    -12.4
    -5.4
    -9.4
    -10.8
    -5.6
    1.4
    1.3
    -6.8
    -3.8
    -2.8
    -0.7
    -3.4
    -3.8
    -6.1
    -2.0
    6.5
    3.0
    0.4
    -2.7
    -9.2
    -14.9
    -11.7

    Merci

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Points : 268
    Points
    268
    Par défaut
    Pourquoi utilises tu un tableau à deux dimensions? Tu pourrais très bien stocker ces valeurs dans un tableau à une dimension.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 102
    Points : 44
    Points
    44
    Par défaut
    Parce que une colonne équivaut à un jour donné dans l'année et une rangée au mois correspondant

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Points : 268
    Points
    268
    Par défaut
    Mais ton fichier texte est composé que de valeur numérique. Comment fais tu le lien entre un jour et une température?

  7. #7
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 072
    Points : 7 974
    Points
    7 974
    Par défaut
    Bah une ligne = 1 jour vu qu'il a 366 mesure dans le fichier non ?

    Donc lire ligne/ligne chaque valeur, retenir a quel numero de ligne on est (donc avoir le JOUR de la mesure)

    Ensuite il ne reste plus qu'a faire un rapide calcul qui donne colonne, rangée a partir du JOUR et placé la valeur dedans.

    en gros ca donnerai (avec 0 1 2 le numero / ou la valeur de la mesure)

    JAN___0 1 2 3 4 5 6
    FEV___7 8 9 10 11 12 13
    MARS_14 15 16 17 18 19 20

    pour avoir la position en X :

    JOUR % 7 ou un truc du genre.

    pour avoir la position en Y :

    JOUR / 12.

    Si je ne m'abuse.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

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

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Points : 268
    Points
    268
    Par défaut
    Mais tous les mois n'ont pas le meme nombre de jour. Comment vas tu gérer ces cas?

  9. #9
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 072
    Points : 7 974
    Points
    7 974
    Par défaut
    Bien vu !
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

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

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 102
    Points : 44
    Points
    44
    Par défaut
    Pour cela j'ai fait un tableau qui alloue la place pour chaque mois dans une boucle

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Points : 268
    Points
    268
    Par défaut
    Cela devrait t'aider:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Date date = new Date(2011 - 1900, 00, 01);
    		String ligne = "";
    		BufferedReader lecteurFichier = null;
    		lecteurFichier = new BufferedReader(new FileReader(nomFichier));
    		int annee = Integer.parseInt(lecteurFichier.readLine());
     
    		//Parcours toutes les valeurs
    		while ((ligne = lecteurFichier.readLine()) != null) {
    			joursDates[date.getMonth()][date.getDate()] = Double.parseDouble(ligne);
    			date.setDate(date.getDate() + 1);
    		}
    		lecteurFichier.close();
    la première dimension du tableau va donc représenté les mois et la secondes les jours.
    Le soucis de ce code c'est qu'il va fonctionné que pour les années à 365 jours.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 102
    Points : 44
    Points
    44
    Par défaut
    Merci, j'ai finalement réussi à mettre les bonnes données dans le tableau

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/02/2009, 10h34
  2. Mettre un fichier csv dans un tableau à deux dimensions
    Par neeux dans le forum Général Python
    Réponses: 5
    Dernier message: 05/03/2007, 17h36
  3. Réponses: 9
    Dernier message: 05/01/2007, 21h04
  4. Rechercher dans un tableau deux dimensions
    Par angelevil dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 28/09/2006, 21h29
  5. tri alphabétique dans un tableau deux dimensions
    Par *!!cocco!!* dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 06/12/2004, 22h38

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