Sauvegarder float en fichier texte

Résolu
cs_kididouille Messages postés 20 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 18 janvier 2009 - 7 juin 2006 à 09:30
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 - 8 juin 2006 à 11:51
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

xboxut Messages postés 172 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 27 novembre 2009 1
7 juin 2006 à 10:41
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 

 
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
7 juin 2006 à 09:41
Avec fwrite par exemple:

float f[NB_FLOAT];

FILE* fichier = fopen(...);
fwrite(f, sizeof *f, NB_FLOAT, fichier)
0
xboxut Messages postés 172 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 27 novembre 2009 1
7 juin 2006 à 10:09
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é.
0
cs_kididouille Messages postés 20 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 18 janvier 2009
7 juin 2006 à 10:31
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
0

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

Posez votre question
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
7 juin 2006 à 10:38
fprintf(file, "%f", val);
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
7 juin 2006 à 11:26
Oups, j'avais mal lu, je pensais que c'était le même programme qui devait relire les float
0
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
8 juin 2006 à 11:51
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).
0
Rejoignez-nous