Compartilhar via


Serialização de dados para e de arquivos

A idéia básica de persistência é um objeto deve ser capaz de gravar o estado atual, indicado pelos valores de suas variáveis de membro, para armazenamento persistente.Posteriormente, o objeto pode ser recriado por leitura ou "desserialização" estado do objeto de armazenamento persistente.Um ponto importante aqui é que o próprio objeto é responsável por ler e escrever seu próprio estado.Assim, para uma classe persistente, ela deve implementar as operações de serialização básica.

O framework fornece uma implementação padrão para salvar documentos em arquivos de disco em resposta ao salvar e salvar como comandos no menu Arquivo e carregar documentos de arquivos do disco em resposta ao comando Abrir.Com muito pouco trabalho, você pode implementar a capacidade do documento para gravar e ler seus dados e para um arquivo.O principal que você deve fazer é substituir o Serialize função de membro em sua classe de documento.

O Assistente de aplicativo do MFC coloca uma substituição de esqueleto do CDocument função de membro Serialize na classe de documento, ele cria para você.Depois de implementar as variáveis de membro do seu aplicativo, você pode preencher seu Serialize substituir com código que envia os dados para um "objeto de arquivamento" conectado a um arquivo.A CArchive objeto é semelhante a cin e cout objetos da biblioteca iostream C++ de entrada e saída.No entanto, CArchive grava e lê o formato binário, texto não formatado.

O que você deseja saber mais sobre?

Função do documento na serialização

A estrutura responde automaticamente ao abrir do menu Arquivo, salvar e salvar como comandos chamando o documento Serialize função de membro se for implementada.Um ID_FILE_OPEN comando, por exemplo, chama uma função de manipulador no objeto application.Durante esse processo, o usuário vê e responde a caixa de diálogo Abrir arquivo e a estrutura obtém o nome de arquivo que o usuário escolhe.O framework cria um CArchive objeto configurado para carregar dados para o documento e passa o arquivamento para Serialize.A estrutura já abriu o arquivo.O código do documento Serialize função de membro lê os dados por meio de arquivamento, reconstruindo os objetos de dados conforme necessário.Para obter mais informações sobre serialização, consulte o artigo serialização.

Função dos dados na serialização

Em geral, os dados de tipo de classe devem ser capazes de serializar próprio.Isto é, quando você passar um objeto para um arquivo, o objeto deve saber como escrever próprio para o arquivamento e como ler próprio do arquivamento.MFC fornece suporte para fazer classes serializável dessa maneira.Se você criar uma classe para definir um tipo de dados e você pretende serializar dados desse tipo, o design para serialização.

Consulte também

Referência

Usando documentos