Serialización de datos a y desde los archivos
La idea básica de persistencia es de que un objeto puede escribir su estado actual, indicado por los valores de las variables miembro, el almacenamiento persistente.Después, el objeto puede reconstruirla leyendo, o “deserializar,” estado de objeto de almacenamiento persistente.Un punto clave aquí es que el propio objeto es responsable de leer y escribir su propio estado.Por tanto, para que una clase sea persistente, debe implementar las operaciones básicas de serialización.
El marco de trabajo proporciona una implementación predeterminada para guardar documentos en los archivos de disco en respuesta al Guardar y a Guardar mientras los comandos del menú archivo y cargar documentan desde el disco los archivos en respuesta al comando abierto.Con muy poco trabajo, puede implementar la capacidad de un documento para escribir y leer los datos en un archivo.El elemento principal que debe hacer es reemplazar la función miembro de serialice en la clase del documento.
El asistente para aplicaciones MFC coloca un reemplazo básica de la función Serialize miembro de CDocument en la clase de documento que crea automáticamente.Después de haber implementado a las variables miembro de la aplicación, puede completar la invalidación de Serialize con código que envía los datos a un objeto “archivo” conectado a un archivo.Un objeto de CArchive es similar a los objetos de entrada y salida de cin y de cout de biblioteca iostream de C++.Sin embargo, CArchive escribe y lee el formato binario, no texto con formato.
¿Qué más desea saber?
El rol del documento en la serialización
El rol de los datos de la serialización
El rol del documento en Serialización
El marco responde automáticamente al Abrir, a Guardar, y a Guardar desde el menú archivo mientras los comandos llamando a la función miembro de Serialize de documento si se implementa.Un comando de ID_FILE_OPEN , por ejemplo, llama a una función de controlador en el objeto application.Durante este proceso, el usuario ve y responde al cuadro de diálogo Abrir archivo y el marco obtiene el nombre de archivo que el usuario elija.El marco de trabajo crea una configuración de objeto de CArchive para cargar datos en el documento y pasa el archivo a Serialize.El marco ha abierto el archivo.El código de la función miembro de Serialize del documento lee los datos de a través del archivo, reconstruyendo objetos de datos según sea necesario.Para obtener más información sobre serialización, vea el artículo serialización.
El rol de Data en Serialización
Normalmente los datos de tipo de clase deben poder serializarse.Es decir, cuando se pasa un objeto en un archivo, el objeto debe saber cómo escribirse en el archivo y leerse del archivo.MFC proporciona compatibilidad para crear clases serializables de esta manera.Si diseña una clase para definir un tipo de datos y desea serializar datos de ese tipo, diseñe para la serialización.