User Tools

Site Tools


tipo_file_arquivo

O tipo file é usado basicamente para armazenamento de dados em memória secundária. Contudo, é possível também se utilizar deste tipo para gravação na memória principal.

Desta forma, o tamanho que os arquivos podem ocupar dependem basicamente do espaço livre em disco ou em RAM.

Um arquivo é declarado da seguinte maneira:

var F: file of <tipo>;

observando-se que <tipo> pode ser uma estrutura de qualquer tipo, exceto o próprio tipo file.

É possível não se informar o tipo do arquivo, o que resulta em um arquivo sem tipo. Segundo o guia de referência, isto é equivalente a um arquivo de bytes.

Para se usar uma variável do tipo arquivo, alguns comandos são necessários:

  • assign: associa o nome da variável (interna ao programa) a um nome de arquivo (em disco, por exemplo). O nome do arquivo é dependente do sistema operacional;
  • reset: abre o arquivo para somente leitura (o arquivo deve existir em disco);
  • rewrite: abre o arquivo para leitura e escrita (se o arquivo existir em disco, apaga e começa outro vazio);
  • close: fecha o arquivo;

Segue um exemplo em que um arquivo de registros (record) é usado para armazenar uma agenda em disco.

type
     agenda = record
          nome: string;
          rg, fone: longint;
     end;
var
     F: file of agenda;

begin
     assign (F,'~/dados/agenda.db');
     reset (F);
     // comandos que manipulam a agenda
     close (F);
end.

Um arquivo especial é o do tipo text, que armazena dados que podem ser manipulados pelas bibliotecas padrão de entrada e saída, inclusive as entradas default input (teclado) e output (tela).

O código a seguir mostra o uso de um arquivo do tipo text.

var
     F: text;
     i: integer;
begin
     assign (F,'~/dados/entrada.txt');
     reset (F);
     read (F,i);
     // comandos que manipulam a variavel i
     write (F,i); // imprime i no arquivo texto (ASCII);
     write (i);   // imprime i na tela;
     close (F);
end.

No caso, o comando read vai ler do arquivo F ao invés do teclado, e escrever no arquivo F no lugar da tela. O arquivo F está em disco e pode ser editado no sistema operacional, inclusive. No Linux, pode substituir o uso de redirecionamento de entrada e saída, dependendo do caso.

tipo_file_arquivo.txt · Last modified: 2019/04/23 23:49 by castilho