Bonsoir, j'ai un fichier qui contient les coordonnées dans l'espace de
points (x, y, z), chaque ligne contient donc trois valeurs réelles, par
exemple:
-0.9364249 -0.3042628 -0.7692308E-01
-0.7965705 -0.5787425 -0.7692308E-01
-0.5787425 -0.7965705 -0.7692308E-01 ...
J'ai besoin de récupérer chaque valeur indépendamment, voici le code que
j'utilise (cf ci dessous), mais dans ma variable "mot" je ne récupère pas
une valeur, mais la valeur de toute la ligne, pourquoi? je ne comprends
pas...
Merci
cf code ci dessous
String chaine, mot;
FileInputStream fichier = new FileInputStream("mon_fichier");
InputStreamReader entree = new InputStreamReader(fichier);
BufferedReader b = new BufferedReader(entree);
// Récupération liste de points
while ((chaine = b.readLine())!= null) {
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Philippe
"Samba" a écrit dans le message de news:3feb5f9e$0$17127$
Bonsoir, j'ai un fichier qui contient les coordonnées dans l'espace de points (x, y, z), chaque ligne contient donc trois valeurs réelles, par exemple: -0.9364249 -0.3042628 -0.7692308E-01 -0.7965705 -0.5787425 -0.7692308E-01 -0.5787425 -0.7965705 -0.7692308E-01 ...
J'ai besoin de récupérer chaque valeur indépendamment, voici le code que j'utilise (cf ci dessous), mais dans ma variable "mot" je ne récupère pas une valeur, mais la valeur de toute la ligne, pourquoi? je ne comprends pas...
Merci cf code ci dessous
String chaine, mot; FileInputStream fichier = new FileInputStream("mon_fichier"); InputStreamReader entree = new InputStreamReader(fichier); BufferedReader b = new BufferedReader(entree);
// Récupération liste de points while ((chaine = b.readLine())!= null) {
StringTokenizer st = new StringTokenizer(chaine, ""); mot = st.nextToken();
while (st.hasMoreTokens()){ System.out.println(mot); mot = st.nextToken(); }
chaine = b.readLine(); }
Normal, t'as mis : new StringTokenizer(chaine, "") Donc ton délimiteur est "", donc rien. Conséquence, il te prends toute la ligne dans le premier mot !
De plus, j'ai l'impression que tu lis 1 ligne sur 3 ... Et enfin, ça risque de planter si t'as rien sur une ligne : lecture du premier mot sans test !
Essaie plutôt :
<CODE> String chaine, mot; FileInputStream fichier = new FileInputStream("mon_fichier"); InputStreamReader entree = new InputStreamReader(fichier); BufferedReader b = new BufferedReader(entree);
// Récupération liste de points while ((chaine = b.readLine())!= null) { // lecture d'une ligne
System.out.println("Liste points");
StringTokenizer st = new StringTokenizer(chaine); // découpage standard
while (st.hasMoreTokens()){ // encore un mot ? mot = st.nextToken(); // ok je prend ! System.out.println(mot); } } </CODE>
"Samba" <sambachat@nshotmail.com> a écrit dans le message de
news:3feb5f9e$0$17127$626a54ce@news.free.fr...
Bonsoir, j'ai un fichier qui contient les coordonnées dans l'espace de
points (x, y, z), chaque ligne contient donc trois valeurs réelles, par
exemple:
-0.9364249 -0.3042628 -0.7692308E-01
-0.7965705 -0.5787425 -0.7692308E-01
-0.5787425 -0.7965705 -0.7692308E-01 ...
J'ai besoin de récupérer chaque valeur indépendamment, voici le code que
j'utilise (cf ci dessous), mais dans ma variable "mot" je ne récupère pas
une valeur, mais la valeur de toute la ligne, pourquoi? je ne comprends
pas...
Merci
cf code ci dessous
String chaine, mot;
FileInputStream fichier = new FileInputStream("mon_fichier");
InputStreamReader entree = new InputStreamReader(fichier);
BufferedReader b = new BufferedReader(entree);
// Récupération liste de points
while ((chaine = b.readLine())!= null) {
StringTokenizer st = new StringTokenizer(chaine, "");
mot = st.nextToken();
while (st.hasMoreTokens()){
System.out.println(mot);
mot = st.nextToken();
}
chaine = b.readLine();
}
Normal, t'as mis : new StringTokenizer(chaine, "")
Donc ton délimiteur est "", donc rien.
Conséquence, il te prends toute la ligne dans le premier mot !
De plus, j'ai l'impression que tu lis 1 ligne sur 3 ...
Et enfin, ça risque de planter si t'as rien sur une ligne :
lecture du premier mot sans test !
Essaie plutôt :
<CODE>
String chaine, mot;
FileInputStream fichier = new FileInputStream("mon_fichier");
InputStreamReader entree = new InputStreamReader(fichier);
BufferedReader b = new BufferedReader(entree);
// Récupération liste de points
while ((chaine = b.readLine())!= null) { // lecture d'une ligne
System.out.println("Liste points");
StringTokenizer st = new StringTokenizer(chaine);
// découpage standard
while (st.hasMoreTokens()){ // encore un mot ?
mot = st.nextToken(); // ok je prend !
System.out.println(mot);
}
}
</CODE>
"Samba" a écrit dans le message de news:3feb5f9e$0$17127$
Bonsoir, j'ai un fichier qui contient les coordonnées dans l'espace de points (x, y, z), chaque ligne contient donc trois valeurs réelles, par exemple: -0.9364249 -0.3042628 -0.7692308E-01 -0.7965705 -0.5787425 -0.7692308E-01 -0.5787425 -0.7965705 -0.7692308E-01 ...
J'ai besoin de récupérer chaque valeur indépendamment, voici le code que j'utilise (cf ci dessous), mais dans ma variable "mot" je ne récupère pas une valeur, mais la valeur de toute la ligne, pourquoi? je ne comprends pas...
Merci cf code ci dessous
String chaine, mot; FileInputStream fichier = new FileInputStream("mon_fichier"); InputStreamReader entree = new InputStreamReader(fichier); BufferedReader b = new BufferedReader(entree);
// Récupération liste de points while ((chaine = b.readLine())!= null) {
StringTokenizer st = new StringTokenizer(chaine, ""); mot = st.nextToken();
while (st.hasMoreTokens()){ System.out.println(mot); mot = st.nextToken(); }
chaine = b.readLine(); }
Normal, t'as mis : new StringTokenizer(chaine, "") Donc ton délimiteur est "", donc rien. Conséquence, il te prends toute la ligne dans le premier mot !
De plus, j'ai l'impression que tu lis 1 ligne sur 3 ... Et enfin, ça risque de planter si t'as rien sur une ligne : lecture du premier mot sans test !
Essaie plutôt :
<CODE> String chaine, mot; FileInputStream fichier = new FileInputStream("mon_fichier"); InputStreamReader entree = new InputStreamReader(fichier); BufferedReader b = new BufferedReader(entree);
// Récupération liste de points while ((chaine = b.readLine())!= null) { // lecture d'une ligne
System.out.println("Liste points");
StringTokenizer st = new StringTokenizer(chaine); // découpage standard
while (st.hasMoreTokens()){ // encore un mot ? mot = st.nextToken(); // ok je prend ! System.out.println(mot); } } </CODE>
Samba
Merci, j'ai réglé le problème grace à la fonction split du package java.util.regex
Merci, j'ai réglé le problème grace à la fonction split du package
java.util.regex