CArchive::CArchive
Construye un objeto de CArchive y especifica si se utilizará para cargar o almacenar objetos.
CArchive(
CFile* pFile,
UINT nMode,
int nBufSize = 4096,
void* lpBuf = NULL
);
Parámetros
pFile
Un puntero al objeto de CFile que es el último origen o destino de datos persistentes.nMode
Una marca que especifica de si los objetos se cargan o almacenados en el archivo. El parámetro de nMode debe tener uno de los siguientes valores:Datos de las cargas deCArchive::load del archivo. Sólo requiere el permiso de lectura de CFile .
CArchive::store guarda los datos en el archivo. Requiere el permiso de CFile .
CArchive::bNoFlushOnDelete evita el archivo automáticamente de la llamada Flush cuando el archivo se denomina destructor. Si establece este marcador, es responsable de llamar explícitamente Cerrar antes de llamar al destructor. Si no hace, los datos se están dañados.
nBufSize
Un entero que especifica el tamaño del búfer de archivos interno, en bytes. Observe que el tamaño de búfer predeterminado es 4.096 bytes. Si tiene los objetos grandes de archivo, se mejora el rendimiento si utiliza un tamaño de búfer mayor que es un múltiplo del tamaño de búfer de archivos.lpBuf
Un puntero opcional a un búfer tras el tamaño nBufSize. Si no especifica este parámetro, el archivo asigna un búfer de pila local y se libera cuando se destruye el objeto. El archivo no libera un búfer proporcionado por usuario.
Comentarios
No puede cambiar esta especificación después de crear el archivo.
No puede utilizar las operaciones de CFile para modificar el estado del archivo hasta que se cierra el archivo. Este tipo de operación dañará la integridad del archivo. Puede tener acceso a la posición del puntero de archivo en cualquier momento durante la serialización obtener el objeto de archivo del archivo de la función miembro de GetFile y utilizando la función de Archivo ctype:: GetPosition . Debe llamar a CArchive:: Vaciado antes de obtener la posición del puntero de archivo.
Ejemplo
CFile file;
TCHAR szBuf[512];
if( !file.Open(_T("CArchive__test__file.txt"),
CFile::modeCreate | CFile::modeWrite))
{
#ifdef _DEBUG
AFXDUMP(_T("Unable to open file\n"));
exit(1);
#endif
}
CArchive ar(&file, CArchive::store, 512, szBuf);
Requisitos
encabezado: afx.h