Esclusione del meccanismo di serializzazione

Come si è visto, il framework offre un modo predefinito per leggere e scrivere dati da e verso i file. La serializzazione tramite un oggetto archivio soddisfa le esigenze di molte applicazioni. Un'applicazione di questo tipo legge un file interamente in memoria, consente all'utente di aggiornare il file e quindi scrive nuovamente la versione aggiornata su disco.

Tuttavia, alcune applicazioni operano sui dati in modo molto diverso e per queste applicazioni la serializzazione tramite un archivio non è adatta. Esempi includono programmi di database, programmi che modificano solo parti di file di grandi dimensioni, programmi che scrivono file di solo testo e programmi che condividono file di dati.

In questi casi, è possibile eseguire l'override della funzione Serialize in modo diverso per mediare le azioni dei file tramite un oggetto CFile anziché un oggetto CArchive.

È possibile usare le Openfunzioni membro , ReadWrite, Close, , e Seek della classe CFile per aprire un file, spostare il puntatore di file (seek) a un punto specifico nel file, leggere un record (un numero specificato di byte) a quel punto, consentire all'utente di aggiornare il record, quindi cercare di nuovo lo stesso punto e scrivere nuovamente il record nel file. Il framework aprirà il file per l'utente e sarà possibile usare la GetFile funzione membro della classe CArchive per ottenere un puntatore all'oggetto CFile . Per un uso ancora più sofisticato e flessibile, è possibile eseguire l'override delle funzioni membro OnOpenDocument e OnSaveDocument della classe CWinApp. Per altre informazioni, vedere classe CFile nella Guida di riferimento per MFC.

In questo scenario, l'override Serialize non esegue alcuna operazione, a meno che, ad esempio, non si voglia leggere e scrivere un'intestazione di file per mantenerla aggiornata alla chiusura del documento.

Vedi anche

Uso di documenti