Remplir Matrice à partir de données d'un fichier

macdam40 Messages postés 6 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 10 février 2007 - 9 févr. 2007 à 22:29
rabehfatima Messages postés 2 Date d'inscription mercredi 4 mai 2011 Statut Membre Dernière intervention 9 mai 2011 - 7 mai 2011 à 16:10
Bonjour,

alors je vous explique mon problème.

J'ai une matrice M d'une certaine taille (M[nbLignes][nbColonnes]) et je voudrais la remplir à partir de données (de type double) qui sont sur un fichier.

J'ouvre donc le fichier (matrice.txt) mais ensuite comment faire???
Ce que l'on a dans le fichier est de type string. Comment passer en double?

J'ai donc besoin de votre aide. Merci d'avance

13 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 févr. 2007 à 22:48
OHE les devins......

Faut être sérieux, sans détails personne n'aura rien à dire sur ton sujet.

Ton fichier est correctement structuré (nbr de longueurs fixes avec zeros de cadrage, separ par TAB), fichier trop nul avec 1 nbr de longueur indéfinie par ligne ou que sais-je encore.

ciao...
BruNews, MVP VC++
0
macdam40 Messages postés 6 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 10 février 2007
9 févr. 2007 à 23:04
j'ai un fichier qui est de cette forme:
1 2 3
4 5 6
7 8 9

je voudrais donc que ma Matrice enregistre ses valeurs cad que
M(1,1)=1
M(1,2)=2
M(1,3)=3
...etc

Ma classe matrice est bien structurée, je ne sais seulement pas comment faire pour enregistrer les valeurs qui sont dans le fichier dans ma matrice.

Merci pour votre aide, je ne m'en sors pas. J'espère que je suis plus clair ;-)
0
macdam40 Messages postés 6 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 10 février 2007
9 févr. 2007 à 23:09
en fait il y a un nombre par ligne dans mon fichier
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
9 févr. 2007 à 23:44
Salut !

Un nombre par ligne dans ton fichier ???
Là je vois pas comment tu peux remplir ta matrice.
Faut être logique, si rien dans le fichier ne te dit qq chose pour commencer à remplir la line suivante de ta matrice, c'est insoluble.
A moins que la taille de ta matrice soit fixe.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 févr. 2007 à 23:55
1er parsing pour déterminer combien en vue d'alloc matrice, 2eme pour remplissage.
Sinon remplir tant que pas atteint count elems matrice.

ciao...
BruNews, MVP VC++
0
macdam40 Messages postés 6 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 10 février 2007
10 févr. 2007 à 10:36
En fait je connais la taille de ma matrice, je sais exactement combien de valeur elle va contenir. C'est pour cela que je pensais mettre 1 valeur par ligne dans le fichier: je pensais que c'etait plus simple.

Mais le problème c'est que je ne sais pas comment enregistrer ces valeurs.

Je vais faire une bouble

for( int i=0; i<nblignes; i++)="" {="" for(="" int="" j="0;" j<nbcolonnes;="" j++)="" mat[i][j]="?????????" c'est="" a="" ce="" niveau="" que="" je="" ne="" sais="" pas="" comment="" faire.=""></nblignes;>
0
macdam40 Messages postés 6 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 10 février 2007
10 févr. 2007 à 10:37
for( int i=0; i
0
macdam40 Messages postés 6 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 10 février 2007
10 févr. 2007 à 10:42
Pardon, on dirait que ce site a des problèmes de compatibilité avec le navigateur Safari.
Je reprend ce que j'ai dis (avec Firefox cette fois).

Je connais la taille de ma matrice, je sais exactement combien de valeur
elle va contenir.

C'est pour cela que je pensais mettre 1 valeur par
ligne dans le fichier: je pensais que c'etait plus simple. Mais le
problème c'est que je ne sais pas comment enregistrer ces valeurs.

Mon algo va être de cette forme:

for(int i=0;i<nbLignes;i++)
   for(int j=0;j<nbColonnes;j++)
       mat[i][j]=???

C'est a ce niveau que je bloque. Je ne sais pas comment faire pour récupérer les valeurs qui sont dans mon fichier matrice.txt.

Ensuite, je peux arranger ce fichier et mettre toutes les valeurs sur une lignes ou bien autre. Je n'ai pas de contraintes.

Quelle solution adopter?

Merci
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 févr. 2007 à 10:44
DWORD n;
WriteFile(hfl, tabDbl, sizeof(double) * nbrElems, &n, 0);

Pas de ligne, pas de conversion texte <=> bin, lecture idem en 1 passe, TOUT BENEF.

ciao...
BruNews, MVP VC++
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
10 févr. 2007 à 10:47
Si tu connais la taille de ta matrice alors ya pas de souci.
Tu ouvres ton fichier, tu lis tout ce qui est dedans.
Dans ce que tu as lu il faut que tu détectes les retours à la ligne.
Si c'est du fichier texte windows, il me semble que la fin de la ligne est : "\r\n".
Si c'est du linux c'est juste : "\n".
Pour exemple, la chaine contenant le fichier texte aura cette tête (pour windows) :
"1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9"

A toi de découper cette chaine comme il faut.
Si tu sais te servir des pointeurs, c'est très court et rapide.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
10 févr. 2007 à 10:49
Tout à fait d'accord avec la solution de BruNews.
C'est le plus rapide, aucune conversion pour écriture/lecture du fichier.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
0
mohamedhelmi Messages postés 1 Date d'inscription jeudi 4 mars 2010 Statut Membre Dernière intervention 4 mars 2010
4 mars 2010 à 15:53
salut tt monde S.V.P mon problem c'est que d'ecrire un programme en c/c++ pour remplier un automat . ce probleme ce compose des sous problemee ...
lecture d'un fichier text en suit va remplir un matrice a partir de ce fichier ....
puis remplir deux tableux a partir de ce fichier .....
merçi
0
rabehfatima Messages postés 2 Date d'inscription mercredi 4 mai 2011 Statut Membre Dernière intervention 9 mai 2011
7 mai 2011 à 16:10
comment lire un ficher texte avec un calcule de fréquence
0
Rejoignez-nous