Sauvegarder float en fichier texte [Résolu]

Signaler
Messages postés
20
Date d'inscription
lundi 27 mars 2006
Statut
Membre
Dernière intervention
18 janvier 2009
-
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
-
Bonjour, j'ai un tableau de float et j'aimerai l'enregistrer dans un fichier texte.
A l'ouverture de ce fichier texte (avec le bloc note par exemple) j'aimerai avoir les valeurs.
(Pour exploiter dans excel)
D'avance merci pour vos explications

7 réponses

Messages postés
172
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
27 novembre 2009

comme je l ai dit plus haut, impossible pour excel de lire tes valaurs en binaires tu doit tranformer tes float en chaine de char.j te passe un ptit exemple.

float tab[MAX_TAB];
char buffer[64];

FILE *donnee=fopen(.....,....);

for( int i=0;i<MAX_TAB;i++)
{
  sprintf (buffer, "%f ",tab[i]);//on ecrit la valeur + un espace qui servira de separateur dans le buffer

fwrite(buffer,1,strlen(buffer),donnee);//on ecrit dans le fichier la chaine

}

voila tu a en gros une idee de ce qu il faut faire meme si ce n est pas tres performant 

 
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Avec fwrite par exemple:

float f[NB_FLOAT];

FILE* fichier = fopen(...);
fwrite(f, sizeof *f, NB_FLOAT, fichier)
Messages postés
172
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
27 novembre 2009

hum je connais pas du tout excel mais lorsque l'on exploite des donnée a l'aide de plotter ou autre programme basique, il est impossible de lire les valeurs directement ecrites en binaires; il faut passer pas l ascii.

le truc a faire sera donc d'utiliser une fonction de transformation de float vers chaine de char genre ftoa que tu peut trouver sur ce site ; )   (  http://www.cppfrance.com/code.aspx?ID=30521 )ou meme fprintf.
ensuite tu sauve tout ton bordel dans un fichier en prenant soin de séparer toutes tes données par des espace ou des virgules (regarde les option de chargement de fichier d excel). et le tour est joué.
Messages postés
20
Date d'inscription
lundi 27 mars 2006
Statut
Membre
Dernière intervention
18 janvier 2009

J'arrive à écrire dans mon fichier texte (CFile Ficher ; Fichier.Write)
mais lorsque je l'ouvre je n'ai pas mes  chiffres mais des ×£½ÍÌ̽ÍÌ̽{.¾{.¾{.¾{.¾{.¾{.¾{.¾{.¾{.¾{.¾  ?¾  ?¾  ?¾¸…¾Âu¾  ?¾  ?¾Âu¾  ?¾  ?¾
tu vois le genre...
Il faut que je passe mes float en char? en cstring?
Conversion float to char?
A partir d'un tableau de float crée un tableau de char??
D'avance merci
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
fprintf(file, "%f", val);
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Oups, j'avais mal lu, je pensais que c'était le même programme qui devait relire les float
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
1
Sépare tes valeurs par des ; si tu veux changer de colonne, et par des retours à la lignes \n si tu veux changer de ligne.

Si tu écris:

Julie;23;Danseuse
Paul;25;Chanteur
Guillaume;21;Guitariste

dans un fichier dont l'extension est csv, il s'ouvrira avec Excel comme un tableau à 3 lignes (les 3 individus), 3 colonnes (nom, age, role dans le groupe).