Remplir Map a partir de fichier texte
Fermé
omidaoui
Messages postés
32
Date d'inscription
dimanche 11 novembre 2012
Statut
Membre
Dernière intervention
2 décembre 2017
-
11 nov. 2012 à 16:15
omidaoui Messages postés 32 Date d'inscription dimanche 11 novembre 2012 Statut Membre Dernière intervention 2 décembre 2017 - 11 nov. 2012 à 17:41
omidaoui Messages postés 32 Date d'inscription dimanche 11 novembre 2012 Statut Membre Dernière intervention 2 décembre 2017 - 11 nov. 2012 à 17:41
A voir également:
- Remplir Map a partir de fichier texte
- Fichier rar - Guide
- Google map satellite gratuit - Guide
- Fichier host - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
2 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
11 nov. 2012 à 16:41
11 nov. 2012 à 16:41
Désolé de ne pas chercher vraiment à corriger ton code (je ne connais pas les StringTokenizer) mais voici une manière de faire :
Ce qui donne ceci :
public static Map<String,Map<String,Double>> charger(File file) throws FileNotFoundException { Scanner sc = new Scanner(file); String[] entete = sc.nextLine().split("\t"); Map<String,Map<String,Double>> globalMap = new TreeMap<String,Map<String,Double>>(); while (sc.hasNextLine()) { String[] data = sc.nextLine().split("\t"); Map<String,Double> partialMap = new TreeMap<String,Double>(); for (int i=0; i<entete.length && i+1<data.length; i++) partialMap.put(entete[i], Double.parseDouble(data[i+1])); globalMap.put(data[0], partialMap); } sc.close(); return globalMap; } public static void main (String[] args) throws IOException { System.out.println(charger(new File("C:\\rqt.txt"))); }
Ce qui donne ceci :
{ T-Doc1={T-Rqt1=1.5, T-Rqt2=11.0, T-Rqt3=10.0, T-Rqt4=14.0}, T-Doc2={T-Rqt1=29.0, T-Rqt2=29.0, T-Rqt3=29.0, T-Rqt4=40.0}, T-Doc3={T-Rqt1=23.0, T-Rqt2=10.0, T-Rqt3=1.0, T-Rqt4=1.0}, T-Doc4={T-Rqt1=29.0, T-Rqt2=2.0, T-Rqt3=2.0, T-Rqt4=2.0}, T-Doc5={T-Rqt1=20.0, T-Rqt2=9.0, T-Rqt3=1.0, T-Rqt4=1.5}, T-Doc6={T-Rqt1=14.0, T-Rqt2=5.0, T-Rqt3=20.0, T-Rqt4=0.0} }
omidaoui
Messages postés
32
Date d'inscription
dimanche 11 novembre 2012
Statut
Membre
Dernière intervention
2 décembre 2017
11 nov. 2012 à 17:06
11 nov. 2012 à 17:06
je vous remercie pour votre reponse, j'ai essayer ton code, mais le resultat c 'est qu il m affiche le Map doc comme ca
{
T-Doc1={=1.5, T-Rqt2=11.0, T-Rqt3=10.0, T-Rqt1=14.0},
T-Doc2={=29.0, T-Rqt2=29.0, T-Rqt3=29.0, T-Rqt1=40.0},
T-Doc3={=23.0, T-Rqt2=10.0, T-Rqt3=1.0, T-Rqt1=1.0},
T-Doc4={=29.0, T-Rqt2=2.0, T-Rqt3=2.0, T-Rqt1=2.0},
T-Doc5={=20.0, T-Rqt2=9.0, T-Rqt3=1.0, T-Rqt1=1.5},
T-Doc6={=14.0, T-Rqt2=5.0, T-Rqt3=20.0, T-Rqt1=0.0}
}
{
T-Doc1={=1.5, T-Rqt2=11.0, T-Rqt3=10.0, T-Rqt1=14.0},
T-Doc2={=29.0, T-Rqt2=29.0, T-Rqt3=29.0, T-Rqt1=40.0},
T-Doc3={=23.0, T-Rqt2=10.0, T-Rqt3=1.0, T-Rqt1=1.0},
T-Doc4={=29.0, T-Rqt2=2.0, T-Rqt3=2.0, T-Rqt1=2.0},
T-Doc5={=20.0, T-Rqt2=9.0, T-Rqt3=1.0, T-Rqt1=1.5},
T-Doc6={=14.0, T-Rqt2=5.0, T-Rqt3=20.0, T-Rqt1=0.0}
}
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
11 nov. 2012 à 17:10
11 nov. 2012 à 17:10
Je pense que cela vient d'un mal entendu sur le contenu du fichier parce que chez moi ça marche bien lorsque je le testes avec ce fichier :
T-Rqt1 T-Rqt2 T-Rqt3 T-Rqt4 T-Doc1 1.5 11.0 10.0 14.0 T-Doc2 29.0 29.0 29.0 40.0 T-Doc3 23.0 10.0 1.0 1.0 T-Doc4 29.0 2.0 2.0 2.0 T-Doc5 20.0 9.0 1.0 1.5 T-Doc6 14.0 5.0 20.0 0.0
omidaoui
Messages postés
32
Date d'inscription
dimanche 11 novembre 2012
Statut
Membre
Dernière intervention
2 décembre 2017
11 nov. 2012 à 17:21
11 nov. 2012 à 17:21
oui, c vrai c bn parceque mon fichier il ya une tabulation au debut
\t T-Rqt1 T-Rqt2 T-Rqt3 T-Rqt4
T-Doc1 1.5 11.0 10.0 14.0
T-Doc2 29.0 29.0 29.0 40.0
T-Doc3 23.0 10.0 1.0 1.0
T-Doc4 29.0 2.0 2.0 2.0
T-Doc5 20.0 9.0 1.0 1.5
T-Doc6 14.0 5.0 20.0 0.0
\t T-Rqt1 T-Rqt2 T-Rqt3 T-Rqt4
T-Doc1 1.5 11.0 10.0 14.0
T-Doc2 29.0 29.0 29.0 40.0
T-Doc3 23.0 10.0 1.0 1.0
T-Doc4 29.0 2.0 2.0 2.0
T-Doc5 20.0 9.0 1.0 1.5
T-Doc6 14.0 5.0 20.0 0.0
omidaoui
Messages postés
32
Date d'inscription
dimanche 11 novembre 2012
Statut
Membre
Dernière intervention
2 décembre 2017
11 nov. 2012 à 17:22
11 nov. 2012 à 17:22
merci bcp
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
11 nov. 2012 à 17:27
11 nov. 2012 à 17:27
Il suffit alors de modifier un peu les indices au moment de la boucle, et ça devrait aller :
for (int i=1; i<entete.length && i<data.length; i++) partialMap.put(entete[i], Double.parseDouble(data[i]));
omidaoui
Messages postés
32
Date d'inscription
dimanche 11 novembre 2012
Statut
Membre
Dernière intervention
2 décembre 2017
11 nov. 2012 à 17:41
11 nov. 2012 à 17:41
we c ce ke jai fait, ^_^ merci