Writefile()/readfile

Signaler
Messages postés
82
Date d'inscription
vendredi 20 mai 2005
Statut
Membre
Dernière intervention
24 octobre 2005
-
Messages postés
13
Date d'inscription
lundi 1 octobre 2007
Statut
Membre
Dernière intervention
5 décembre 2007
-
Salut,
je veux enregistrer des float dans un fichier txt, et les lire apres, j'ai utilisé la fonction suivante pour écrire et lire les 5 premiers float,
problèmes
1. lorsque j'ouvre mon fichier à la main je trouve des caractéres bizare et nom pas des float
2.de meme pour la lecture je récupére des float différentes de celles écrites.
Remarque :
le (vect[i].x) est un réel.
help please!!!!
void base::WriteRealDataFile(char *pf)
{
HANDLE hSrc, hDest;
DWORD dwRead, dwWritten;
float g[1000];
hSrc = CreateFile(pf, GENERIC_WRITE, 0, NULL,OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);


if (hSrc == INVALID_HANDLE_VALUE)
{cout << "Unable to open " <<endl;getch();exit(1);}


else {
for(int i=0;i<Dimbase;i++)


{ cout << "Le fichier est ouvert pour ecriture " <<endl;
WriteFile(hSrc,&(vect[i].x),Dimbase, &dwWritten, NULL);

}

}
CloseHandle(hSrc);
//=======================lecture===========

hSrc = CreateFile(pf, GENERIC_READ, 0, NULL,OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
ReadFile(hSrc, g, 10000, &dwRead, NULL);
CloseHandle(hSrc);
for(int i=0;i<5;i++)
cout <<g[i];

4 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
C'est normal, c'est parce que les float sont codés en binaire et non en
décimal. Si tu écris directement, ca sera illisible dans ton fichier.
Par contre, si tu relis dans ton fichier, tu obtiendras sans problème
le float que tu y as écrit.

Si tu veux que ton fichier soit lisible, il faut que tu transformes ton float en chaine avant, avec sprintf par exemple.

Je vois que tu utilises cout, dans ce cas pourquoi ne pas utiliser
aussi les flots pour écrire er lire dans le fichier: ca sera beaucoup
plus simple ici:

ofstream out;

out << (vect[i].x);

...

in >> (vect[i].x);
Messages postés
82
Date d'inscription
vendredi 20 mai 2005
Statut
Membre
Dernière intervention
24 octobre 2005

il parait que cela va marcher, comment faire pour supprimer mes fichier une fois terminer !!
merci
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
En C tu as la fonction remove
Messages postés
13
Date d'inscription
lundi 1 octobre 2007
Statut
Membre
Dernière intervention
5 décembre 2007

Bonjour,
je souhaite écrire des données puis  les lire dans un fichier texte en utilisant les fonctions CreateFile(), WriteFile(), ReadFile() et CloseHandle(). Merci de me montrer un exemple svp. mon ide c'est visual c++.
Merci d'avance