Compartir a través de


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

Vea también

Referencia

CArchive Class

Gráfico de jerarquías

CArchive::Close

CArchive::Flush

CFile::Close