Crie um banco de dados usando o arquivo Delphi de arquivos digitados

Basta colocar um arquivo é um sequência binária de algum tipo. Dentro Delphi, existem três classes de Arquivo: digitado, texto e sem tipo. Arquivos digitados são arquivos que contêm dados de um tipo específico, como Duplo, Inteiro ou Tipo de registro personalizado definido anteriormente. Os arquivos de texto contêm caracteres ASCII legíveis. Arquivos não tipados são usados ​​quando queremos impor a menor estrutura possível em um arquivo.

Arquivos digitados

Embora os arquivos de texto consistam em linhas terminadas com um CR / LF (#13#10) combinação, arquivos digitados consistem em dados obtidos de um tipo específico de estrutura de dados.

Por exemplo, a declaração a seguir cria um tipo de registro chamado TMember e uma matriz de variáveis ​​de registro TMember.

tipo

 TMember = registro

 Nome: corda[50];

o email:
corda[30];

Mensagens: LongInt;
fim;

var Membros: matriz[1..50] do TMember; 

Antes de podermos gravar as informações no disco, precisamos declarar uma variável de um tipo de arquivo. A seguinte linha de código declara uma variável de arquivo F.

instagram viewer
var F: arquivo de TMember; 

Nota: Para criar um arquivo digitado no Delphi, usamos o seguinte sintaxe:

var SomeTypedFile: arquivo de SomeType

O tipo base (SomeType) para um arquivo pode ser um tipo escalar (como Duplo), um tipo de matriz ou tipo de registro. Não deve ser uma cadeia longa, matriz dinâmica, classe, objeto ou ponteiro.

Para começar a trabalhar com arquivos do Delphi, precisamos vincular um arquivo em um disco a uma variável de arquivo em nosso programa. Para criar esse link, precisamos usar AssignFile procedimento para associar um arquivo em um disco a uma variável de arquivo.

 AssignFile (F, 'Membros.dat') 

Depois que a associação com um arquivo externo é estabelecida, a variável de arquivo F deve ser 'aberta' para prepará-la para leitura e gravação. Chamamos o procedimento de redefinição para abrir um arquivo existente ou reescrever para criar um novo arquivo. Quando um programa conclui o processamento de um arquivo, o arquivo deve ser fechado usando o procedimento CloseFile. Depois que um arquivo é fechado, seu arquivo externo associado é atualizado. A variável do arquivo pode ser associada a outro arquivo externo.

Em geral, devemos sempre usar manipulação de exceção; muitos erros podem surgir ao trabalhar com arquivos. Por exemplo: se chamarmos CloseFile para um arquivo que já está fechado, o Delphi reportará um erro de E / S. Por outro lado, se tentarmos fechar um arquivo, mas ainda não tivermos chamado AssignFile, os resultados serão imprevisíveis.

Gravar em um arquivo

Suponha que tenhamos preenchido uma matriz de membros do Delphi com seus nomes, e-mails e número de postagens, e queremos armazenar essas informações em um arquivo no disco. O seguinte pedaço de código fará o trabalho:

var

 F: arquivo de TMember;

i: inteiro;
início

 AssignFile (F, 'members.dat');

 Reescrever (F);

experimentar

para j: = 1 para 50 Faz

 Escreva (F, Membros [j]);

finalmente

 CloseFile (F);

fim;fim; 

Ler de um arquivo

Para recuperar todas as informações do arquivo 'members.dat', usamos o seguinte código:

var

 Membro: TMember

 F: arquivo de TMember;início

 AssignFile (F, 'members.dat');

 Reset (F);

experimentar

enquanto não Eof (F) comece

 Leia (F, Membro);

{DoSomethingWithMember;}

fim;

finalmente

 CloseFile (F);

fim;fim; 

Nota: Eof é a função de verificação EndOfFile. Usamos essa função para garantir que não estamos tentando ler além do final do arquivo (além do último registro armazenado).

Procura e Posicionamento

Os arquivos são normalmente acessados ​​sequencialmente. Quando um arquivo é lido usando o procedimento padrão Lido ou gravado usando o procedimento padrão Write, a posição atual do arquivo passa para o próximo componente de arquivo ordenado numericamente (próximo registro). Os arquivos digitados também podem ser acessados ​​aleatoriamente através do procedimento padrão Seek, que move a posição atual do arquivo para um componente especificado. o FilePos e Tamanho do arquivo As funções podem ser usadas para determinar a posição atual do arquivo e o tamanho atual do arquivo.

{volte ao começo - o primeiro registro}

 Busca (F, 0);


{vá para o 5º registro}

 Busca (F, 5);


{Salte para o final - "depois" do último registro}

 Procurar (F, FileSize (F)); 

Alterar e atualizar

Você acabou de aprender a escrever e ler toda a matriz de membros, mas e se tudo o que você quer fazer é procurar o 10º membro e alterar o e-mail? O próximo procedimento faz exatamente isso:

procedimento Mude o e-mail(const RecN: inteiro; const Novo Email: corda) ;var DummyMember: TMember;início

{atribuir, abrir, bloco de tratamento de exceção}

 Busca (F, RecN);

 Leia (F, DummyMember);

 DummyMember. E-mail: = NewEMail;

{leia passa para o próximo registro, temos que

volte ao registro original e escreva}
 Busca (F, RecN);

 Escrever (F, DummyMember);

{fechar arquivo}fim;

Concluindo a tarefa

É isso aí - agora você tem tudo o que precisa para realizar sua tarefa. Você pode gravar as informações dos membros no disco, lê-las novamente e até alterar alguns dados (email, por exemplo) no "meio" do arquivo.

O importante é que esse arquivo não seja um Arquivo ASCII, é assim que fica Bloco de anotações (apenas um registro):

 Guia Delphi g Ò5 · ¿ì. 5.. B V.Lƒ, „[email protected].. ç.ç.ï..