Les fichiers binaires en C++

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

La boucle for : init7.c et init71.c
Stockage de données.
Introduction Langage très répandu Noyau Linux VLC … Des avantages indéniables mais aussi des contraintes ! Ceci nest quun rapide tour.
Programmation Orienté Objet en C++
Rappels C.
Introduction au langage C
Cours n° 2 Les entrées-sorties Biliothèque C++ (iostream) –
C++ 6ème cours Patrick Reuter maître de conférences
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Types, variables et constantes.
GEF 243B Programmation informatique appliquée Types dérivés, structures et tableaux §
GEF 243B Programmation informatique appliquée
Gestion de FICHIERS.
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
Structures et unions types énumérés Qu'est-ce qu'une structure
Les pointeurs Manipulation d'adresses et de ce qui est contenu dans ces adresses Très important, fondamental même en C mauvaise réputation : 'dur à comprendre',
Suite à de nombreuses remarques concernant le projet de structures de données 'Gestion d'un Aéroport' , voici un polycopié de cours concernant la gestion.
Les attributions de valeur (le signe =). Dans cette présentation, nous allons tenter de représenter ce qui se passe dans la mémoire de lordinateur quand.
FLSI602 Génie Informatique et Réseaux
Points importants de la semaine Les fonctions. La portée. La passage par copie. Les tableaux.
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
TP Fichiers et Tableaux Avril Un fichier Permet le stockage de données sur des supports de mémoire externes (donc les données ne seront pas perdues.
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que lon veut allouer. Le premier exemple: #include void main()
Gestion de Fichiers Concepts Fondamentaux et Fichiers dEnregistrements.
PROGRAMMATION SCIENTIFIQUE EN C PRO Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.
TRAITEMENT DE STRUCTURES
Système d’Exploitation
FICHIERS.
FICHIERS : Définition : Algorithme général:
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
IFT Structures de données
SEANCE 10 Python Entrée et sortie de fichiers Lycée Louis Vincent Lundi 20 janvier
Operations de Base en C++ sur les Fichiers
IFT 6800 Atelier en Technologies d’information
Les Fichiers.
8PRO100 Éléments de programmation Les types composés.
ÉLÉMENTS DE BASE UNIX.
Manipulation des fichiers dans le langage VB
LANGAGE C LP A2I IUT St DIE
Structures de données IFT-2000 Abder Alikacem Semaine 12 (2 ième partie) Les B-arbres Département d’informatique et de génie logiciel Édition septembre.
Tableaux Introduction aux tableaux à une dimension. Déclaration, stockage, initialisation et accès en lecture ou en écriture aux composantes d’un tableau.
Structures de données IFT-2000 Abder Alikacem Semaine 11, 1 ère partie Les B-arbres Département dinformatique et de génie logiciel Édition septembre 2009.
Les fichiers texte en C++
1212 Entrée et sortie de fichiers Objectifs À la fin de ce cours, vous serez capables de : • Lire à partir de la console • Écrire sur la console.
L’essentiel du langage C
Les pointeurs L'opérateur &.
Le langage C Rappel Pointeurs & Allocation de mémoire.
1 Fichers Binaires, Accès Direct et Objets. 2 Données binaires. Il s'agit ici de lire et écrire des données binaires par opposition à du texte. Pour ce.
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
et quelques rappels sur certains éléments du langage C
Les adresses des fonctions
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
ALGORITHMIQUE ET PROGRAMMATION C
Labo 4 : Les structures et les entrées et sorties
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que l’on veut allouer. Le premier exemple: #include void main()
 Requêtes MySQL en PHP Introduction
Entrées / Sorties.
Strings et Tableaux en Java
Conception de Programmes - IUT de Paris - 1ère année – Cours 8 – Les entrées/sorties Comment fonctionnent les opérateurs > pour les types élémentaires.
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Patricia Renault UPMC 2005/2006
8PRO107 Éléments de programmation Les adresses et les pointeurs.
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Informatique 2A Langage C 4ème séance
Accès aux fichiers en C.
Transcription de la présentation:

Les fichiers binaires en C++ Qu’est ce que c’est: Un fichier binaire contient l’image mémoire des données que l’on écrit (on les stocke de la même façon qu’elles sont écrites dans la mémoire primaire). On veut mémoriser un prix : 123.458 Dans un fichier texte : il sera mémorisé sous la forme de 7 caractères. Tandis qu’en mémoire il est mémorisé sous la forme de 4 octets (taille d’un 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) Bases de la programmation en C++

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 d’accé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 d’une date. On peut donc se positionner aisément à la date que l’on veut lire. Bases de la programmation en C++

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

Exemple #include <fstream.h> int main () { // déclaration et ouverture d'un fichier texte fstream fich; // déclaration d’un réel que l’on veut écrire en binaire float k=123.458; // 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 l’adresse de k, un bloc de 4 octet // (on a donc écrit k en binaire) fich.close (); return 0; } Bases de la programmation en C++

Exemple fstream fich; short int Tab[5] = {1,2,3,4,5}; // tableau que l’on 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 l’on écrit à partir de l’adresse TabLu fich . read ((char*)TabLu, sizeof ( short int ) *5); cout<<TabLu[0]<<TabLu[1]<<TabLu[2]<<TabLu[3]<<TabLu[4]; delete [ ]TabLu; Bases de la programmation en C++