Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Como ha visto, el marco proporciona una manera predeterminada de leer y escribir datos en archivos y desde ellos. Serializar a través de un objeto de archivo se adapta a las necesidades de una gran cantidad de aplicaciones. Esta aplicación lee un archivo completamente en memoria, permite al usuario actualizar el archivo y, a continuación, escribe la versión actualizada en el disco de nuevo.
Sin embargo, algunas aplicaciones funcionan en datos de forma muy diferente y, para estas aplicaciones, la serialización a través de un archivo no es adecuada. Algunos ejemplos incluyen programas de base de datos, programas que editan solo partes de archivos grandes, programas que escriben archivos de solo texto y programas que comparten archivos de datos.
En estos casos, puede invalidar la función Serialize de una manera diferente para mediar acciones de archivo a través de un objeto CFile en lugar de un objeto CArchive .
Puede usar las funciones miembro Open, Read, Write, Close y Seek de la clase CFile para abrir un archivo, mover el puntero de archivo a un punto específico del archivo, leer un registro (un número especificado de bytes) en ese punto, permitir al usuario actualizar el registro y, a continuación, buscar nuevamente el mismo punto y escribir el registro en el archivo. El marco abrirá el archivo para usted, y usted puede usar la función miembro GetFile de la clase CArchive para obtener un puntero al objeto CFile. Para un uso aún más sofisticado y flexible, puede invalidar las funciones miembro OnOpenDocument y OnSaveDocument de la clase CWinApp. Para obtener más información, vea la clase CFile en la referencia de MFC.
En este escenario, la invalidación de Serialize no hace nada, a menos que, por ejemplo, desee que se lea y escriba un encabezado de archivo para mantenerlo actualizado cuando se cierre el documento.