Acesso a Arquivos com várias estruturas
Windows FileMapping (WinAPI)
Já tentou acessar um arquivo através de pedaços com BlockRead, BlockWrite? Funciona bem com registros para arquivos estruturados. E para arquivos que podem assumir diversas estruturas (por exemplo, você quer ler um byte na posição 3000 e um registro na posição 2999, um objeto na posição 300, um inteiro na posição 900, um byte negativo na posição 10000... e tudo sem precisar declarar variáveis para intermediar essa leitura nem dar conta do buffer desse arquivo)?
Criar arquivos complexos não é dificil. É só querer armazenar mais de uma coisa num lugar só e é muito comum quando se tem um formato de arquivo que junte elementos diferentes. Para arquivos que têm só texto, um cabeçalho (header) que descreva o tamanho da letra (fonte), a cor ou outros detalhes um acesso estruturado serviria. E para arquivos que juntam texto, som, imagens e estruturas diversas, criadas por você?
Generalizar o acesso ao arquivo tratando-o como uma sequencia de bytes (usando o tipo file of byte) não dá acesso indexado maleável porque não evita o uso de buffers para transferir do o que você quer do arquivo para a memória.
E se você quisesse o arquivo na memória de maneira imediata sem se preocupar com o acesso e com leituras para variáveis?
Use o FileMapping. O Windows cuida de tudo. E você ganha um ponteiro que pode ser usado com o tipo que você quiser, fazendo o arquivo representar aquilo que você quiser sem precisar usar variáveis intermediárias. Depois, faça typecast dos tipos. Para arquivos feitos por você vale a pena descrever tipos que facilitem o acesso a esses arquivos criando registros que representem esse arquivo dependendo do tipo de informação que se quer acessar.
0 Comentários:
Postar um comentário
<< Home