Lecture / Ecriture dans un fichier binaire
2 participants
Page 1 sur 1
Lecture / Ecriture dans un fichier binaire
Je vais le découper en bout.
ECRITURE:
LECTURE:
MAIN (type):
ECRITURE:
- Code:
void ecritureStruct(string nom)
{
/* ----- Syntaxe en C ------ */
/*
FILE *pFile;
char buffer[15] = "Bonjour\nZ";
pFile = fopen("data/news.bin","w+b");
if (pFile!=NULL)
{
fwrite (buffer , 1 , sizeof(buffer) , pFile );
fclose (pFile);
}
*/
/* ----- Syntaxe en C ------ */
/* ----- Syntaxe en C++ ----- */
ofstream fch(nom.c_str(),ios::binary | ios::trunc);
long int nombre = 1130258;
char data[10] = "1130258";
float prix = 11.11;
// Ecriture d'un entier : valeur hexa ==> 11 3F 12
fch.write((char*) &nombre,sizeof(int));
// Ecriture d'une chaîne de caractère : valeur hexa ==> encodage ascii habituelle
fch.write(data, sizeof(data));
// Ecriture d'un float : valeur hexa
fch.write((char*) &prix,sizeof(float));
fch.close();
/* ----- Syntaxe en C++ ----- */
}
LECTURE:
- Code:
void lectureStruct(string chemin)
{
string data = "";
ifstream fch(chemin.c_str(), ios::binary);// | ios::binary);
if (fch)
{
cout << "Fichier Ouvert.\nDebut de la lecture du fichier" << endl << endl;
/*char *buffer;
int size;
// Méthode pour récupérer la taille total de la chaînes de caractères.
fch.seekg(0,ios::end); // on met le pointeur à la fin.
size = fch.tellg(); // on récupère la valeur où est le pointeur, ce qui correspond à la taille du fichier.
fch.seekg(0,ios::beg); // on remets le pointeur au début du fichier.
// Allocation du buffer.
buffer = new char[size];
// on lit et on renvoie le buffer vers la console.
fch.read(buffer,size);
cout << buffer;
delete[] buffer;*/
long int nombre;
char data[10];
float prix;
fch.read((char *)&nombre,sizeof(int));
fch.read((char *)&data,sizeof(data));
fch.read((char *)&prix,sizeof(float));
cout << nombre << endl;
cout << data << endl;
cout << prix << endl;
}
else cerr << "Impossible de lire le fichier !!" << endl;
fch.close();
}
MAIN (type):
- Code:
int main(int argc, char *argv[])
{
string chemin = "news.bin";
cout << endl << "Ecriture ..." << endl;
ecritureStruct(chemin);
cout << endl << "Lecture ..." << endl;
lectureStruct(chemin);
system("PAUSE"); // juste pour dev-c++
return EXIT_SUCCESS;
}
davy- Messages : 26
Date d'inscription : 31/01/2008
Re: Lecture / Ecriture dans un fichier binaire
le plus importanr c'est ce bout de code.
Je pense qu'on peut creer une classe qui fait lecture et ecriture en binaire pour faciliter la tache plus tard.
Je pense qu'on peut creer une classe qui fait lecture et ecriture en binaire pour faciliter la tache plus tard.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|