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
- Annuaire portable gratuit a partir d'un nom ✓ - Forum Mobile
- Fichier rar - Guide
- Google map satellite - Guide
- Dans le texte, un seul mot a réellement été écrit en lettres capitales (majuscules). quel est ce mot ? ✓ - Forum Word
- Comment trouver un numéro à partir du nom et prénom ✓ - Forum Mobile
2 réponses
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
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
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
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
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
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