Upload
btpbtp5176
View
313
Download
1
Embed Size (px)
Citation preview
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;
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.
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
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;