Omitir el mecanismo de serialización
Como ha visto, el marco proporciona una manera predeterminada de leer y escribir datos en archivos. La serialización a través de un objeto de archivo se adapta a las necesidades de una gran variedad de aplicaciones. Esta aplicación lee un archivo completamente en la memoria, permite al usuario actualizar el archivo y, a continuación, vuelve a escribir la versión actualizada en el disco.
Sin embargo, algunas aplicaciones funcionan con 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 reemplazar la función Serialize de otra manera 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 clase CFile
para abrir un archivo, mover el puntero de archivo (buscar) a un punto específico del archivo, leer un registro (un número específico de bytes) en ese punto, permitir al usuario actualizar el registro y, a continuación, buscar el mismo punto de nuevo y volver a escribir el registro en el archivo. El marco abrirá el archivo automáticamente y podrá 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 reemplazar las funciones miembro OnOpenDocument y OnSaveDocument de la clase CWinApp
. Para más información, consulte 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.