projet Fichiers structurés
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -40%
Tefal Ingenio Emotion – Batterie de cuisine 10 ...
Voir le deal
59.99 €

Lecture / Ecriture dans un fichier binaire

2 participants

Aller en bas

Lecture / Ecriture dans un fichier binaire Empty Lecture / Ecriture dans un fichier binaire

Message  davy Jeu 14 Fév - 2:33

Je vais le découper en bout.

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

Revenir en haut Aller en bas

Lecture / Ecriture dans un fichier binaire Empty Re: Lecture / Ecriture dans un fichier binaire

Message  amine Jeu 14 Fév - 9:48

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. Wink
amine
amine
Admin

Messages : 124
Date d'inscription : 30/01/2008
Age : 35
Localisation : Montpellier

https://projet.bbactif.com

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser