La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Bases de la programmation en C++ 1 Les fichiers binaires en C++ Quest ce que cest: Un fichier binaire contient limage mémoire des données que lon écrit.

Présentations similaires


Présentation au sujet: "Bases de la programmation en C++ 1 Les fichiers binaires en C++ Quest ce que cest: Un fichier binaire contient limage mémoire des données que lon écrit."— Transcription de la présentation:

1 Bases de la programmation en C++ 1 Les fichiers binaires en C++ Quest ce que cest: Un fichier binaire contient limage mémoire des données que lon écrit (on les stocke de la même façon quelles sont écrites dans la mémoire primaire). On veut mémoriser un prix : Dans un fichier texte : il sera mémorisé sous la forme de 7 caractères. Tandis quen mémoire il est mémorisé sous la forme de 4 octets (taille dun type float en C++). Dans un fichier binaire il sera donc mémorisé sous la forme de 4 octets (si on ouvre le fichier en texte on lira 4 char : êöB)

2 Bases de la programmation en C++ 2 Propriétés Le fichier est beaucoup plus léger en terme de taille ! La taille de la zone ne dépend que du type écrit et non de sa valeur. Chaque donnée ayant une taille connu dans le fichier binaire. On peut se positionner aisément ou on veut. Pas besoin de convertir les int, float ou structures en chaînes de caractères. Par contre le contenu des fichiers binaires est difficile à interpréter ou a visualiser. On mémorise dans un fichier un tableau de n structures TDate. En texte, il est très difficile daccéder à la i éme date sans tout lire avant, car on ne connais pas la taille prise par lécriture des autres dates. En binaire, on connais la taille dune date. On peut donc se positionner aisément à la date que lon veut lire.

3 Bases de la programmation en C++ 3 Comment ça marche? Pareil que les fichiers textes, mais il faut spécifier que lon va travailler en binaire. ios::binary. Ecriture: fstreamf; f.open (nom_physique, ios::out|ios::bin); f.write ( (char*)buff, n ); Ecriture: fstreamf; f.open (nom_physique, ios::in|ios::bin); f.read ( (char*)buff, n ); Adresse du bloc de donnée que lon veut écrire transtypé en (char*) Taille du bloc (en octets)

4 Bases de la programmation en C++ 4 Exemple #include int main () { // déclaration et ouverture d'un fichier texte fstream fich; // déclaration dun réel que lon veut écrire en binaire float k= ; // Ouverture du fichier en ecriture binaire fich. open ("fich1.txt", ios::out|ios::binary ); // Ecriture en binaire du reel k; fich. write ((char*)&k, sizeof ( float )); // on a écrit à partir de ladresse de k, un bloc de 4 octet // (on a donc écrit k en binaire) fich.close (); return 0; }

5 Bases de la programmation en C++ 5 Exemple fstream fich; short int Tab[5] = {1,2,3,4,5}; // tableau que lon va écrire short int *TabLu = new short int [5]; // tableau résultant de la lecture //Ouverture en écriture binaire fich. open ("fich2.txt", ios::out |ios::binary ); // Ecriture du tableau Tab. (sizeof ( short int ) egale 2 octets. fich. write ((char*)Tab, sizeof ( short int ) * 5); // fermeture du fichier fich.close (); //Ouverture en lecture binaire fich. open ("fich2.txt", ios::in |ios::binary ); //Lecture de 5*2 = 10 octet (5 éléments de type short int) //que lon écrit à partir de ladresse TabLu fich. read ((char*)TabLu, sizeof ( short int ) *5); cout<


Télécharger ppt "Bases de la programmation en C++ 1 Les fichiers binaires en C++ Quest ce que cest: Un fichier binaire contient limage mémoire des données que lon écrit."

Présentations similaires


Annonces Google