5
1. Arquivos a Identificação do Registro b,c,d Campos e,f,g,h Registros a) Um arquivo é formado por registros; b) Cada registro é formado de campos; c) O arquivo possui um nome (8 caracteres para o nome mais 3 caracteres para a extensão), este nome é chamado de nome externo (DOS); d) Cada registro possui um índice interno e o arquivo possui um ponteiro que indica a posição atual do arquivo; e) Quando o arquivo é aberto ("Reset") ou criado ("ReWrite") o ponteiro aponta para o registro ZERO; f) A cada leitura ou gravação o ponteiro aponta para o próximo registro (Acesso seqüencial); g) Pode-se ainda, apontar para qualquer registro (Acesso Randômico) através do procedimento Seek. Tipos de Arquivos: Texto Tipo de Arquivo formado de caracteres organizados em linhas. Como Definir: Var Arquivo: Text; (* ou Arquivo: File Of Char; *) Reg: Char; (* Reg é a variável que representa o registro *)

Arquivo Físico

Embed Size (px)

Citation preview

Page 1: Arquivo Físico

1. Arquivos

a Identificação do Registrob,c,d Campose,f,g,h Registros

a) Um arquivo é formado por registros;b) Cada registro é formado de campos;c) O arquivo possui um nome (8 caracteres para o nome mais 3 caracteres para a extensão), este nome é chamado de nome externo (DOS);d) Cada registro possui um índice interno e o arquivo possui um ponteiro que indica a posição atual do arquivo; e) Quando o arquivo é aberto ("Reset") ou criado ("ReWrite") o ponteiro aponta para o registro ZERO;f) A cada leitura ou gravação o ponteiro aponta para o próximo registro (Acesso seqüencial);g) Pode-se ainda, apontar para qualquer registro (Acesso Randômico) através do procedimento Seek.

Tipos de Arquivos:

Texto

Tipo de Arquivo formado de caracteres organizados em linhas.

Como Definir:

Var Arquivo: Text; (* ou Arquivo: File Of Char; *) Reg: Char; (* Reg é a variável que representa o registro *)

Binário

Tipo de Arquivo usado para armazenar tipos de dados diferentes.

Type Registro = Record Nome: String[30]; Idade: Byte; Salário: Real; End;

Page 2: Arquivo Físico

Var Arquivo: File Of Registro; Reg: Registro;

1.1 Procedimentos

1.1.1 Assign

Procedimento que associa o nome externo do arquivo (DISCO) ao nome interno do arquivo dentro do programa (File Of).

Modo de Usar: Assign(Arq: File Of ..., nome_arquivo: String[]);

Exemplo: Arquivo Genérico

Var Arq: File Of Byte;Reg: Byte;Nome_arquivo: String[14];

BeginClrScr;Write('Informe o Nome do Arquivo: ');Readln(Nome_arquivo);Assign(Arq,Nome_arquivo);

ou

Exemplo: Arquivo Específico

Var Arq: File Of Integer;Reg: Integer;

BeginClrScr;Assign(Arq,'B:\FILES\AGENDA.DAT'); (* Drive:\Path\Nome *)

1.1.2 Close

Procedimento que permite fechar um arquivo.

Modo de Usar: Close(Arq: File Of ...);

1.1.3 Erase

Procedimento que permite deletar um arquivo no disco.

Modo de Usar: Erase(drive: Arq: File Of ...);

1.1.4 Read

Procedimento que permite ler campos ou registros do arquivo contido no disco.

Page 3: Arquivo Físico

Modo de Usar: Read(Arq: File Of ..., registro ou campo);

1.1.5 Write

Procedimento que permite gravar campos ou registros no arquivo contido no disco.

Modo de Usar: Write(Arq: File Of ..., registro ou campo);

1.1.6 ReName

Procedimento que permite renomear o arquivo no disco.

Modo de Usar:ReName(drive:Arq: File Of ..., novo_nome_para_o_arquivo);

1.1.7 Reset

Procedimento que permite abrir de um arquivo.

Modo de Usar: Reset(Arq: File Of ...);

Na abertura de um arquivo, deve ser verificado sua existência, pois se o arquivo não existir haverá um erro em tempo de execução (Run Time Error), e o programa será abortado, para que isto não aconteça é feito o seguinte:

Program Exemplo;Uses Crt;Var Arq: File Of Integer;

Reg; Integer;Nome_arquivo: String[14];

BeginClrScr;Write('Nome do Arquivo: ');ReadLn(Nome_arquivo);Assign(Arq,Nome_arquivo);{$I-} Reset(Arq) {$I+};

Observação: {$I-} e {$I+} são diretivas de compilação que forçam o compilador a não abortar se houver um erro em tempo de execução (RunTime Error), fazendo ainda com que a variável pré-definida "IoResult" retorne com a informação se houve erro ou não da seguinte maneira:

IoResult = 0 Arquivo EXISTEIoResult <> 0 Arquivo NÃO EXISTE

If IoResult = 0 ThenWriteLn('Arquivo EXISTE')

ElseWriteLn('ERRO: Arquivo NÃO EXISTE')

1.1.8 ReWrite

Page 4: Arquivo Físico

Procedimento que permite criar um arquivo em disco, se o arquivo não existe, é criado, se existe é apagado, e o ponteiro do arquivo é posicionado no registro zero.

Modo de Usar: ReWrite(Arq: File Of ...);

1.1.9 Seek

Procedimento que permite posicionar o ponteiro do arquivo no registro especificado (Acesso Randômico).

Modo de Usar: Seek(Arq: File Of ..., número_do_registro);

1.2 Funções

1.2.1 EOF (End Of File)

Função que retorna TRUE se o ponteiro do arquivo chegou ao fim do arquivo, FALSE enquanto não for fim de arquivo.

Modo de Usar: EOF(Arq: File Of ...): Boolean;

1.2.2 FilePos

Função que retorna a posição do registro corrente, ou seja, a posição do ponteiro no arquivo (o primeiro registro é Zero).

Modo de Usar: FilePos(Arq: File Of ...): Integer;

1.2.3 FileSize

Função que retorna o número de registros do arquivo, "zero" se não existir nenhum registro.

Modo de Usar: FileSize(Arq: File Of ...): Integer;

1.2.4 SizeOf

Função que retorna o número de bytes ocupado por uma variável.

Modo de Usar: SizeOf(tipo ou variável): Word;