Comment sauvegarder une matrice sous fichier et la racharger qu'on veut??

malbb2000 Messages postés 3 Date d'inscription mercredi 3 novembre 2004 Statut Membre Dernière intervention 5 novembre 2004 - 3 nov. 2004 à 20:44
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 - 6 nov. 2004 à 14:45
salut tt le monde j'aimerais bien que qqn puisse m'aider sur le sujet que j'ai posais d'avance merci en core

10 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
3 nov. 2004 à 21:39
Pour une matrice x*y c'est pas très compliqué.
Tu lis ta matrice selon les abscisse et les ordonnés et tu stoques les valeurs au fur et a mesure dans le fichier:

FILE *fp;
int mat[10][10];
int i;
int j;

//Tu initialises ta matrice avec les valeurs souhaitées.
[...]

//On ouvre le fichier en écriture.
fp = fopen("c:\\monfichier.txt","w+t");

for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
fprintf(fp,"%i ", mat[i][j]);
}
fprintf(fp," \n");
}


Le code d'écriture ressemble a ca a quelques choses pret.

Shell
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
3 nov. 2004 à 21:57
vi.
Mais si la vitesse est importante dans ton prog, évites le
mat[10][10]
Mieux vaut un mat[10*10]
c'est beaucoup plus rapide
(et en plus dans ce cas t'as pas besoin d'imbriquer les for())
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
4 nov. 2004 à 18:57
Niveau rapidité ya quand meme mieux que ta solution.
Avec une matrice [x*y], tu va devoir a chaque ligne appellé y fois strcat pour concaténér les valeurs et e ajouter au final a la matrice, et je doute que se soit plus rapide que d'utiliser une matrice [x][y].

Shell
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
4 nov. 2004 à 20:27
???pourquoi ca???
qu'est ce que strcat a a voit la dedans? c'est des nombres non?
0

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

Posez votre question
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
4 nov. 2004 à 20:55
Dans mon exemple oui mais dans son cas on n'en sait rien!
Puis j'aimerais bien que tu me montres un exemple avec ta matrice [x*y] si c'est vraiment plus rapide.

J'en profite au passage pour te rappeler qu'il souhaite stoquer les valeurs dans un fichier puis les récuperer.
Pour la récupération ta méthode lui poserai pas mal de problème.

Shell
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
4 nov. 2004 à 21:02
ben non...
bon en fait c'est vrai que dans cet exemple ya pas vraiement besoin de se compliquer la vie comme ca, c'est surtout dans la manipulation dee matrices 3d que c'est utile, car plus rapide (tre) de faire
if (mat[16]==....
que
if (mat[4][4]...
ici pour récupérer la valeur il aurait pu faire une macro...
mat[a][b] == mat[a*largeur+b]
c'est exactement la méthode utilisée par windows si je ne m'abuse. (et si je ne me sui pas gourré dans la formule, mais je crois que c'est ca)
0
malbb2000 Messages postés 3 Date d'inscription mercredi 3 novembre 2004 Statut Membre Dernière intervention 5 novembre 2004
4 nov. 2004 à 23:40
salut tt le monde j'aimerais bien eclaircir qq chose je travail sous c++ builder je voudrais sauvegarder des vecteur de 48 elements dans un fichier pour pouvoir les recupere plutard et les comparere avec d'autre vecteur que j'aurais au cour de mon processus,je travail sur la classification des empreintes digitales ces vecteurs la constiiturons une ptite base donne pour se referer dans cette classification
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
5 nov. 2004 à 17:59
tu peux donner ta class vecteur please?
0
malbb2000 Messages postés 3 Date d'inscription mercredi 3 novembre 2004 Statut Membre Dernière intervention 5 novembre 2004
5 nov. 2004 à 23:18
je ne sais ce que tu voulais dire par classe mais c un stringgrid de 4*48
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
6 nov. 2004 à 14:45
je comprend pas (moi non plus)

pour ouvrir un fichier:
FILE *fp;
fp = fopen("c:\\monfichier.txt","w+t");

pour écrire une valeur:
fprintf(fp,"%i ", ma_valeur);// pour un entier

pour lire une valeur qui se trouve juste apres celle que tu as LUE en dernier (ou la premiere si t'as encore rien lu)
fscanf(fp,"%i", &ma_valeur);//pour un entier.

pour fermer le ficier qd t'en as plus besoin
fclose(fp);

"w+t" est une sorte de flag, ya plusieurs possibilités, cherches fopen sur google.

tu peux remplacer "%i" par ce que tu veux, genre: "%i %s %d \n" (un entier, une chaine dee caracteres, un float, un retour a la ligne)
0
Rejoignez-nous