Accueil > Forum > > > > Initialiser une matrice avec un fichier texte
Initialiser une matrice avec un fichier texte
mercredi 10 janvier 2007 à 19:25:25 |
Initialiser une matrice avec un fichier texte

afalaze
|
Bonjour; Je cherche à initialiser une matrice carrée à l'aide d'un fichier texte de la forme suivante -------------- fichier.txt --------------- 3 L 1 2 3 L 1 2 5 L 0 4 9 ------------------------------------------La première ligne represente la dimension de la matrice carrée Les lignes suivantes les valeurs de chaque ligne de la matrice, "L" pour signaler les lignes à traiter. Voici le listing de Matrice.java : ------------------------------ Matrice.java --------------------------
import java.io.IOException; import java.io.FileReader; import java.io.FileWriter; import java.io.BufferedReader; import java.util.StringTokenizer; import java.lang.Integer;
public class Matrice { int[][] matrice; int dimMatrice = 0; // Affichage du contenu de la matrice private void affichage(int dim) { for(int i=0; i<dim; i++) { for(int j=0; j<dim; j++) { System.out.print(matrice[i][j] +"\t"); } System.out.println(); } } // Dimension du graphe public int getDimension() { return dimMatrice; } // Initialiser une matrice depuis un fichier texte public Matrice(String fichier) throws IOException { BufferedReader entree = new BufferedReader(new FileReader(fichier)); int nbLigne = 0; //Compteur de boucle String lignelue = null; while((lignelue = entree.readLine()) != null) { StringTokenizer tok = new StringTokenizer(lignelue, " "); while(tok.hasMoreTokens()) { if(nbLigne == 0) { //dimMatrice = Integer.parseInt(lignelue); dimMatrice = Integer.parseInt(tok.nextToken()); System.out.println("La dimension de la matrice : "+dimMatrice); nbLigne++; } else { matrice = new int[dimMatrice][dimMatrice]; if(tok.nextToken() == "L") { tok.nextToken(); } for(int j=0; j<dimMatrice; j++) { matrice[nbLigne-1][j] = Integer.parseInt(tok.nextToken()); } nbLigne++; } } } entree.close(); } public static void main(String argc[]) throws IOException { System.out.println("Initialisation de la matrice"); Matrice matrice = new Matrice("fichier.txt"); matrice.affichage(matrice.getDimension()); } } -------------------------------------------------------------------------------A l'execution, j'obtien bien la dimension de la matrice mais celle celle-ci s'initialise mal à l'exception de la dernier ligne : java matrice Initialisation de la matrice La dimension de la matrice : 3 0 0 0 0 0 0 0 4 9Je pense que je me sert mal de la classe StringTokenizer Aidez moi à y voire plus claire. Merci
|
|
mercredi 10 janvier 2007 à 20:46:14 |
Re : Initialiser une matrice avec un fichier texte

kaloway
|
la comparaison d'une chaine de caractère ne se fait pas avec "==" mais avec equals.
exemple tok.nextToken().equals("L")
|
|
jeudi 11 janvier 2007 à 01:27:09 |
Re : Initialiser une matrice avec un fichier texte

afalaze
|
Merci koloway pour m'avoir repondu si vite. J'ai bien essayé ta suggestion en remplaçant if(tok.nextToken() == "L") par if(tok.nextToken().equals( "L"))
mais à l'execution j'ai le message suivant : Initialisation de la matrice La dimension de la matrice : 3 Exception in thread "main" java.util.NoSuchElementException at java.util.StringTokenizer.nextToken(StringTokenizer.java:332) at Matrice.<init>(Matrice.java:75) at Matrice.main(Matrice.java:88) Press any key to continue...
En rectifiant "L" par 'L' : if(tok.nextToken().equals( 'L')) Je revien à la case départ c.a.d : java matrice Initialisation de la matrice La dimension de la matrice : 3 0 0 0 0 0 0 0 4 9
Donc je ne comprend pas pourquoi la troisième ligne est traitée et non pas les 2 premières ?
|
|
jeudi 11 janvier 2007 à 11:17:56 |
Re : Initialiser une matrice avec un fichier texte

afalaze
|
Réponse acceptée !
Je vien de trouver la faille : La matrice est écrasée à chaque passage dans le bloc else
else { matrice = new int[dimMatrice][dimMatrice]; if(tok.nextToken() == "L") .....
Il suffit de remettre matrice = new int[dimMatrice][dimMatrice]; dans le bloc if pour que la matrice soit créee une seule fois.
if(nbLigne == 0) { //dimMatrice = Integer.parseInt(lignelue); dimMatrice = Integer.parseInt(tok.nextToken()); System.out.println("La dimension de la matrice : "+dimMatrice); matrice = new int[dimMatrice][dimMatrice]; nbLigne++; } else { ......
Ainsi à l'execution : 
Initialisation de la matrice La dimension de la matrice : 3 1 2 3 1 2 5 0 4 9 Press any key to continue...
|
|
jeudi 29 mars 2007 à 17:46:54 |
Re : Initialiser une matrice avec un fichier texte

foutayeni
|
Bonsoir est ce que t'as trouvé le problème ou pas encore?
|
|
Cette discussion est classée dans : fichier, java, int, matrice, dimmatrice
Répondre à ce message
Sujets en rapport avec ce message
Creer un lien entre deux fichiers [ par Tom89 ]
Bonjour,Je suis dsl de poser une question aussi triviale mais je n'arrive pas à trouver de réponses dans les tutorials.J'ai deux fichiers Tableaux.jav
[STRUCTURE] Comment on fait ? [ par Ilsundal ]
Bonjour a tous, ca fait maintenant 3ans 1/2 que je code en c/c++ et je commence le JAVA, j'aimerais savoir comment ca fonctionne pour les structure !
Java csv [ par matriyouchka1971 ]
Bonjour tous le monde; j'ai crée un fichier csv dans un servlet java aprés je veux ouvrir ce fichier (depuis la servlet java) dans une fenêtre indépen
Manipulation des fichiers [ par morayma ]
Bonjour,J'ai des programmes en C que je dois codifier en Java. Il s'agit de créer un fichier structuré, de rechercher des informations dans ces fichie
[Java] passage de paramètres et fichiers [ par harleen ]
Bonjour, Je vous écris afin de vous poser un problème qui me parait assez siple, mais auquel je ne parviens pas à trouver de solution précise. En ef
Covertir une Donnée d'un fichier en entier [ par majormadidi1984 ]
Bonjour tout le monde, En effet j'essaie de convertir un string que j'ai récupéré dans un fichier texte pour le convertir un entier, mais je n'y parv
ecrire dans un fichier txt en java [ par baldemm ]
Bonjour tt le monde g ss bloqué depuis hier Mon problème: g lu tte les lignes d'un fichier txt mnt il faut les ecrire tte ds un nouveau fichier txt.Le
Ecriture dans un fichier distant [ par nehla ]
Salut Je veux ecrire dans un fichier qui existe dans un serveur. J'ai inséré le bout de code suivant dans un programme java : URL url= new
java xml [ par eyakat ]
Bonsoir, J'ai un problème d'exécution au niveau de mon code java pour lire un fichier xmlaprès de saisir le nom du fichier xml pour l'exécuter il m'af
java.lang.NullPointerException [ par sunita85 ]
Salut à tousj'ai le code suivant qui contient deux méthodes une qui copie un fichier dans un autre et une qui enregistre un nouveau fichier .Je veux e
Livres en rapport
|
Derniers Blogs
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE [WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE[WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE par FREMYCOMPANY
Je pense qu'ils ont besoin d'une piqure de rappel chez Microsoft : c'est bien gentil d'avoir une interface jolie, mais si c'est pour avoir un truc qui ne convainct pas dedans, c'est peine perdue.
---->
Système ouvert ----> Fermé ?
P...
Cliquez pour lire la suite de l'article par FREMYCOMPANY
Forum
RE : ABSURDE.RE : ABSURDE. par DARKSIDIOUS
Cliquez pour lire la suite par DARKSIDIOUS ABSURDE.ABSURDE. par diospyrus
Cliquez pour lire la suite par diospyrus
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|