Ei, então eu acabei de aprender sobre a parte de E / S do STL, mais especificamente do fluxo. Embora agora eu possa salvar informações binárias e classes que fiz no disco rígido, não sei como definir como as informações devem ser lidas.
Eu vi a resposta para criar um formato de arquivo a partir deste [1] [1] post:
Normalmente, você definiria muitos registros / estruturas, como BITMAPINFOHEADER, e especificaria em que ordem eles devem vir, como devem ser aninhados, e pode ser necessário escrever muitas indicações e tabelas de consulta. Esses arquivos consistem em vários registros (talvez aninhados), tabelas de pesquisa, palavras mágicas (indicando início da estrutura, fim das estruturas etc.) e seqüências de caracteres em um formato definido de forma personalizada.
O que eu quero saber especificamente é como fazer isso com o STL e C ++ ... Como o formato é destinado apenas ao uso de um jogo, eu acho que seria muito mais fácil. O formato deve:
- Seja passável (eu posso olhar através dele e encontrar o início da estrutura e talvez verificar o nome
- Ser capaz de armazenar várias classes e dados em um único arquivo
- possui iniciações e terminações identificáveis em seções: como o espaço em arquivos de texto
- Talvez tenha seu próprio ícone para representá-lo?
Como faço isso em c ++?
fonte
Respostas:
tente usar o boost serialize ! Fora isso, o que você está pedindo é como implementar a serialização e isso é uma coisa realmente complicada! Eu recentemente implementei uma implementação para serialização e não é fácil falar sobre isso.
também há outra maneira de salvar apenas uma classe em um arquivo que contém todas as informações necessárias, o que simplifica muito o processo de salvar / carregar classes.
a propósito, o ícone não tem nada a ver com o formato do arquivo, é algo que o sistema operacional gera por arquivo, e geralmente os ícones são armazenados em algum lugar entre os arquivos do sistema operacional. exceto arquivos executáveis do Windows (tanto quanto eu sei). Os arquivos executáveis do Windows são como uma pasta compactada, contendo as operações binárias reais, dados de ícones para várias resoluções e talvez outros dados relacionados ao próprio sistema operacional.
fonte