Ignorer le mécanisme de sérialisation

Comme vous l’avez vu, l’infrastructure fournit un moyen par défaut de lire et d’écrire des données dans et depuis des fichiers. La sérialisation par le biais d’un objet d’archivage répond aux besoins d’un grand nombre d’applications. Une telle application lit un fichier entièrement en mémoire, permet à l’utilisateur de mettre à jour le fichier, puis d’écrire à nouveau la version mise à jour sur le disque.

Toutefois, certaines applications fonctionnent sur des données très différemment et, pour ces applications, la sérialisation par le biais d’une archive n’est pas appropriée. Par exemple, les programmes de base de données, les programmes qui modifient uniquement des parties de fichiers volumineux, des programmes qui écrivent des fichiers texte uniquement et des programmes qui partagent des fichiers de données.

Dans ces cas, vous pouvez remplacer la fonction Serialize d’une manière différente pour médiatiser les actions de fichier via un objet CFile plutôt qu’un objet CArchive .

Vous pouvez utiliser les fonctions membres , , ReadCloseWriteet Seek les Openfonctions membres de la classe CFile pour ouvrir un fichier, déplacer le pointeur de fichier (rechercher) vers un point spécifique du fichier, lire un enregistrement (un nombre spécifié d’octets) à ce stade, laisser l’utilisateur mettre à jour l’enregistrement, puis rechercher à nouveau le même point et réécrire l’enregistrement dans le fichier. L’infrastructure ouvre le fichier pour vous et vous pouvez utiliser la GetFile fonction membre de classe CArchive pour obtenir un pointeur vers l’objet CFile . Pour une utilisation encore plus sophistiquée et flexible, vous pouvez remplacer les fonctions membres OnOpenDocument et OnSaveDocument de la classe CWinApp. Pour plus d’informations, consultez la classe CFile dans la référence MFC.

Dans ce scénario, votre Serialize remplacement ne fait rien, sauf si, par exemple, vous souhaitez qu’il lise et écrive un en-tête de fichier pour le maintenir à jour lorsque le document se ferme.

Voir aussi

Utilisation de documents