La sérialisation des données vers et depuis des fichiers
L'idée de base de la persistance est qu'un objet doit pouvoir écrire son état actuel, indiqué par les valeurs de ses variables membres, au stockage persistant.Ultérieurement, l'objet peut être recréé lors de la lecture, ou « désérialiser », l'état de l'objet dans le stockage persistant.Un point clé ici est que l'objet lui-même est chargé de lire et d'écrire leur état.Ainsi, pour une classe est persistante, il doit implémenter les opérations de base de sérialisation.
La structure fournit une implémentation par défaut pour stocker des documents aux fichiers sur disque en réponse à l'enregistrement et à la sauvegarde comme les commandes du menu Fichier et pour charger des documents des fichiers sur disque en réponse à la commande ouverte.Avec très peu de travail, vous pouvez implémenter la capacité d'un document d'écrire et lire ses données à partir d'un fichier.L'élément principal que vous devez faire est de remplacer la fonction membre de sérialisez dans votre classe de document.
L'Assistant Application MFC place une substitution squelette de la fonction membre Serialize de CDocument dans la classe de document qu'il crée pour vous.Une fois que vous avez implémenté les variables membres de votre application, vous pouvez remplir votre substitution d' Serialize avec du code qui envoie les données à un objet « archive » connecté à un fichier.Un objet de CArchive est semblable aux objets en entrée/sortie d' cin et d' cout de la bibliothèque iostream C++.Toutefois, CArchive écrit et lit le format binaire, pas texte mis en forme.
Sur quels éléments souhaitez-vous obtenir des informations supplémentaires ?
Le rôle du document dans la sérialisation
Le rôle des données dans la sérialisation
Le rôle du document dans la sérialisation
L'infrastructure répond automatiquement au menu Fichier ouvert, à la sauvegarde, et à la sauvegarde sous forme de commandes en appelant la fonction membre d' Serialize de le document si elle est implémentée.Une commande d' ID_FILE_OPEN , par exemple, appelle une fonction gestionnaire dans l'objet application.Pendant ce processus, l'utilisateur voit et répond à la boîte de dialogue ouverte de fichier et l'infrastructure obtient le nom de fichier que l'utilisateur.l'infrastructure crée une installation d'objet d' CArchive pour charger des données dans le document et passe l'archive à Serialize.l'infrastructure a déjà ouvert le fichier.Le code dans la fonction membre d' Serialize de votre document lit les données via l'archive, reconstruisant des objets de données nécessaires.Pour plus d'informations sur la sérialisation, consultez l'article sérialisation.
Le rôle des données dans la sérialisation
En général les données de classe-type doivent être en mesure de sérialiser.Autrement dit, lorsque vous passez un objet à une archive, l'objet doit savoir comment s'écrire dans l'archive et de lire dans l'archive.MFC fournit la prise en charge d'effectuer des classes sérialisables de cette façon.Si vous créez une classe pour définir un type de données et que vous prévoyez de la sérialisation des données de ce type, concevez pour la sérialisation.