Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML.
Manipulação de arquivos no Delphi
Parte 2: Arquivos Binários
Na edição anterior, vimos como manipular arquivos textos. Vimos também como criar ou abrir um arquivo existente e como ler e escrever informações. Neste artigo veremos como manipular arquivos binários.
Assim como os arquivos textos, antes da criação dos bancos de dados os arquivos binários também eram utilizados para o armazenamento em massa de informações. Ainda hoje, algumas aplicações fazem uso de arquivos binários para armazenar e trocar informações de maneira mais segura do que é possível com arquivos texto.
Arquivos binários guardam informações no "formato de máquina". Por isso, se um arquivo desse tipo for aberto em um editor de texto comum, não será possível a sua leitura de maneira compreensível. Você pode, por exemplo, tentar ler uma DLL, mas não vai conseguir entender muita coisa.
Vale lembrar que arquivos binários, para que possam ser manipulados pelas nossas aplicações, precisam ter suas estruturas conhecidas. Claro que você pode abrir qualquer arquivo binário e fazer a leitura de seu conteúdo lendo byte a byte. No entanto se você não souber o que cada sequência de bytes significa, pouco poderá fazer com os bytes lidos.
Um exemplo onde são úteis os arquivos binários seria uma aplicação que criasse um arquivo para envio a outra máquina. Para evitar que os dados fiquem desprotegidos, acessíveis para que qualquer usuário possa ler, gravaríamos estas informações em formato binário. Apenas a aplicação que recebesse o arquivo conheceria o seu formato e poderia fazer a "conversão".
Variáveis do tipo arquivo
Para acessar um arquivo binário, precisamos declarar uma variável do tipo "arquivo":
var Nome_da_variavel: file;
Ou, se soubermos a estrutura do arquivo, utilizamos a seguinte sintaxe:
var Nome_da_variavel: file of <estrutura>;
Onde <estrutura> pode ser, por exemplo, um record. A atribuição do nome do arquivo à variável é feita através dos comandos Assign ou AssignFile, como em:
AssignFile(Variável, 'nome_do_arquivo.Txt');
Este exemplo mostra a definição de um arquivo binário baseado num registro (record) com dois campos:
type
RegFile = record
campo1:integer;
campo2:string[30];
end;
var
MeuArqBin: file of RegFile;
begin
AssignFile(MeuArqBin, 'Arq1.bin');
end;
...