Os computadores utilizam os arquivos como estruturas de dados para armazenamento de longo prazo de grandes volumes de dados. Dados mantidos em arquivos são chamados de dados persistentes porque eles existem além da duração da execução do programa em dispositivos de armazenamento secundário como disquete, disco rígido, entre outros.

Nos artigos, manipulando arquivo texto, será mostrado como as aplicações Delphi criam, recuperam, atualizam e processam arquivos de dados. O processamento de arquivo representa um subconjunto das capacidades de processamento que permitem a um programa armazenar e processar volumes maciços de dados persistentes.

Neste primeiro artigo será demonstrada a criação e a gravação de um arquivo texto no qual os dados são armazenados como uma sequência de caracteres dividida em linhas terminadas por um caractere de fim de linha. Os arquivos no formato texto geralmente são encontrados com nomes com a extensão padrão TXT (abreviação de TEXT, ou texto em inglês). Arquivos texto podem ser facilmente lido ou abertos por qualquer programa que lê texto e, por essa razão, são considerados universais.

Uma variável que representa um arquivo texto é declarada fazendo-se referência ao identificador padrão TextFile. As operações subsequentes sobre o arquivo devem ser precedidas por uma chamada ao procedimento AssignFile e as operações de entrada e saída devem ser precedidas da chamada dos procedimentos Reset ou Rewrite/Append, respectivamente.

A seguir serão listados os principais procedimentos aplicados aos arquivos texto.

Declarando as variáveis envolvidas
var arq: TextFile; { declarando a variável "arq" do tipo arquivo texto }
  nomeArq, linha: string;
ch: char
[ 1 ] AssignFile(arq, nomeArq)
  Esta instrução tem por finalidade associar um nome lógico de arquivo (arq) ao arquivo físico (nomeArq). "nomeArq" é uma cadeia de caracteres que representa qualquer nome de arquivo a ser manipulado. Este nome é atribuído à variável "arq" e todas as operações sobre "arq" serão realizadas no arquivo em disco de nome "nomeArq"
[ 2 ] Rewrite(arq)
  Um novo arquivo em disco com o nome atribuído à variável "arq" é criado e preparado para processamento, um ponteiro de arquivo é colocado no início do arquivo criado. Caso o arquivo a ser criado já exista, esta instrução apaga o arquivo para criá-lo novamente
[ 3 ] Reset(arq)
  Prepara um arquivo existente para leitura e coloca o ponteiro de arquivo no início. Caso o arquivo não exista, esta instrução provocará um erro de Entrada/Saída (Input/Output)
[ 4 ] Append(arq)
  Abre um arquivo texto existente para estendê-lo (saídas adicionais). Caso o arquivo não exista, esta instrução provocará um erro de Entrada/Saída (Input/Output)
[ 5 ] CloseFile(arq)
  Fecha o arquivo texto aberto
[ 6 ] Readln(arq, linha)
  Lê uma linha no arquivo indicado por "arq"
[ 7 ] Read(arq, ch)
  Lê um caractere no arquivo indicado por "arq"
[ 8 ] Writeln(arq, lista_de_expressões)
  Grava no arquivo texto "arq" um ou mais valores colocando a marca de fim-de-linha no final da lista
[ 9 ] Write(arq, lista_de_expressões)
  Grava no arquivo texto "arq" um ou mais valores em sequência
[ 10 ] Eoln(arq)
  Função lógica que retorna True se é final de linha, ou seja, se o ponteiro do arquivo indica a leitura da marca de fim-de-linha (CR/LF). Caso contrário, a função retorna False
[ 11 ] Eof(arq)
  Função lógica que retorna True caso o ponteiro do arquivo indique a leitura da marca de fim-de-arquivo, caso contrário, a função retorna False

Para demonstrar a utilização dos procedimentos que manipulam arquivos texto será desenvolvida uma aplicação Delphi para gravar a tabuada de um número em um arquivo externo denominado de "tabuada.txt" criado na unidade de disco "d"

Desenvolvendo a Aplicação Delphi Criar uma nova aplicação no ambiente de desenvolvimento Delphi 7 através da opção do menu "File|New|Application..." e realizar os dois passos descritos a seguir:

1º Passo:

Desenvolver o formulário principal da aplicaço como sugere a Figura 1. Atenção: observe que as caixas de textos explicativos utilizadas na figura apresentam a ordem sequencial e o nome do componente, a página da sua localização e as propriedades que devem ser alteradas com os respectivos valores.

imagem 1
Figura 1. Formulário principal da aplicação

2º Passo:
A interação de um programa com um dispositivo de armazenamento através de arquivos passa por três etapas: abertura ou criação de um arquivo, leitura ou gravação de dados e fechamento do arquivo. A realização destas etapas e a utilização do procedimento writeln para gravar a tabuada do número informado no arquivo, deverão ser implementadas no evento "onClick" do botão "Tabuada", como mostra a Listagem 1

Listagem 1. Procedimento do evento "onClick" do botão "Tabuada"

procedure TForm1.Button1Click(Sender: TObject);
var  arq: TextFile; { declarando a variável "arq" do tipo arquivo texto }
    i, n: integer;
begin
  try
{ [ 1 ] Associa a variável do programa "arq" ao arquivo externo "tabuada.txt"
          na unidade de disco "d" }
    AssignFile(arq, 'd:\\tabuada.txt');
    Rewrite(arq); { [ 2 ] Cria o arquivo texto "tabuada.txt" na unidade de disco "d" }

    n := StrToInt(Edit1.Text);

    Writeln(arq, '+--Resultado--+'); { [ 8 ] Grava uma linha no arquivo }
    for i:=1 to 10 do
    begin
{ [ 8 ] Grava uma linha da tabuada no arquivo }
      Writeln(arq, '| ', i:2, ' X ', n, ' = ', (i*n):2, ' |');
    end;
    Writeln(arq, '+-------------+'); { [ 8 ] Grava uma linha no arquivo }

    CloseFile(arq); { [ 8 ] Fecha o arquivo texto "tabuada.txt". }

    ShowMessage('Tabuada gravada com sucesso em "d:\tabuada.txt".');
  except
  end;
end;

Executando a aplicação deve-se informar o número da tabuada e pressionar o botão "Tabuada". Ao final do processo de gravação da tabuada no arquivo texto será apresentada uma mensagem indicando que o arquivo "tabuada.txt" foi criado com sucesso na unidade de disco "d". Para visualizar o resultado da gravação basta abrir o arquivo "tabuada.txt" através do bloco de notas, por exemplo. Na Figura 2 pode-se observar a sequência de passos na gravação da tabuada do 8

1. Informando o número da tabuada
imagem 2
2. Sucesso na gravação da tabuada
imagem 3
3. Arquivo "tabuada.txt" aberto pelo Bloco de Notas
imagem 4
Figura 2. Ilustrando a execução da aplicação

Neste artigo foi apresentado como gravar informações em um arquivo texto. No próximo artigo sobre a manipulação de arquivos texto em aplicações Delphi será demonstrado com efetuar a operação de leitura

Obrigado e um abraço