Persistir objetos em arquivos tipados/binários

27/05/2008

1

Olá pessoal.

Estou escrevendo uma pequena biblioteca gráfica baseada em GDI para manipulação e reprodução de sprites animados.

Tenho uma classe TSprite que possui uma lista de ponteiros para vários TBitmap (que contém os quadros da animação) e tenho uma classe TSpriteList que é, basicamente uma lista especializada para manipular instâncias de TSprite.

Pois bem... tenho uma classe TSpriteLib que será responsável, entre outras coisas, pela persistência de instâncias de TSpriteList para o disco (devendo gravar, todas as propriedades e todos os bitmaps num arquivo binário).

A minha dúvida é: como persistir uma instância de um objeto para um arquivo binário? Existe algum tipo de arquivo tipado capaz de fazer isso (como no caso do “file of TMyRecord”?)

Eu sei que com ´record´ dá pra se conseguir isto muito fácil (como no trecho de código abaixo), mas e com objetos?

Muito obrigado.

Type TMyRecord = Record;

(...)

Var
F : file of TMyRecord;
r : TMyRecord;

(...)

AssignFile(f, "filename.bin");
Reset(F);
Write(F, r);
CloseFile(F); 



Responder

Posts

27/05/2008

Massuda

Como a quantidade de dados a serem armazenados de cada classe varia, um arquivo do tipo ´file of´ não serve, pois ele assume que cada registro tem tamanho fixo (o tamanho do record).

Sugiro que você dê uma olhada nos métodos WriteComponent e ReadComponent da classe TStream.


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira