180 likes | 315 Views
ARQUIVOS. Roteiro. 1. Conceito 2. Organização de Arquivos 3. Abertura de Arquivo 4. Leitura de Registro 5. Gravação de Registro 6. Eliminação (Deleção) de Registro 7. Fechamento de arquivo 8. Exemplo. 1. Conceitos. Arquivo
E N D
Roteiro 1. Conceito 2. Organização de Arquivos 3. Abertura de Arquivo 4. Leitura de Registro 5. Gravação de Registro 6. Eliminação (Deleção) de Registro 7. Fechamento de arquivo 8. Exemplo
1. Conceitos Arquivo Informações agrupadas sob a forma de registros, alocado em um armazém de massa (ex. disco, fita, etc.)
CAMPOS Número Nome Endereço Telefone 1 João José Peixoto Rua. Ipe, 20 4790 1123 Registros 2 Clóvis C. da Silva Rua. Macieira, 3 4790 1428 3 Rubens da Gama Filho Rua. Xuxu, 20 4790 5678 n Hipólito da Mata R.Abacaxi, 4 4790-9898 Arquivo de Informações de Pessoas Exemplo
2. Organização de Arquivos • Arquivos Sequênciais • As informações são armazenadas na ordem em que foram gravadas • Leitura em ordem sequencial – (um registro após o outro, percorrendo todo o arquivo) • Normalmente a quantidade de registros é grande. • Alguns dispositivos são naturalmente sequenciais (Ex. unidades de fitas)
Manipulação de Arquivos em PASCAL 1. Tipos de arquivos: Texto Binário 1.1. Arquivos Texto (Text) Um arquivo texto contém informações no formato ASCII, podendo ser manipulados com editores de texto.
Definição de um arquivo texto: Var identificador : Text; onde: identificador é o nome da variável a ser utilizada no programa para identificar um arquivo; Text é uma palavra reservada do Pascal para identificar arquivos do tipo texto (File of Char). Ex: Var arq: Text; {Nesse exemplo a variável arq será utilizada para acesso a um arquivo ASCII}
Os comandos do Pascal Assign, Reset, Rewrite e Close são utilizados da mesma forma tanto para arquivos texto quanto para arquivos binários. Assign é utilizado para associar uma variável do tipo Text (arquivo texto) à um arquivo existente ou não em um determinado disco. Reset é utilizado para abrir o arquivo para leitura, Rewrite é utilizado para abrir o arquivo para escrita (destruindo seu conteúdo, caso exista), e Close é utilizado para fechar um arquivo aberto com Reset ou Rewrite.
Para abrir um arquivo texto é necessário, previamente, associar a sua variável do tipo Text com o nome de um arquivo físico reconhecido ou não pelo sistema operacional. Essa associação, conforme colocado anteriormente, é realizada com o procedimento Assign.
Sintaxe: Assign (variável, ’nome do arquivo ser utilizado’). Ex: Assign (arq, 'Autoexec.bat'); Assign (arq,’C:\teste.txt'); Após utilizar o Assign é preciso tornar o arquivo utilizável pelo programa. Essa operação é realizada com o uso dos procedimentos Reset ou RewriteouAppend. É importante ressaltar que Reset e Append só podem ser utilizados com arquivos já existentes.
Sintaxe: Reset (variável); Ex: Reset (arq); {Abre o arquivo associado à variável arq para leitura} Append (variável); Ex: Append (arq); {Abre o arquivo associado à variável arq para gravação, posicionando o ponteiro no final do arquivo, para não apagar os dados já gravados } Sintaxe: Rewrite (variável); Ex: Rewrite (arq); {Abre o arquivo associado à variável arq para escrita, criando um novo arquivo, isto é, se o arquivo já existir, todo o seu conteúdo será apagado e será gerado um novo arquivo vazio }
Para escrever informações em um arquivo são utilizados os comandos do Pascal Write e Writeln. Para leitura de informações de um arquivo são utilizados os comandos Read e Readln. Os comandos Read e Readln funcionam de forma semelhante para leitura. Sempre que um desses comandos for utilizado para acesso a arquivos, deve ser utilizado como primeiro argumento a variável associada ao arquivo com o comando Assign.
Sintaxe: Writeln (variável do tipo text,variável ou constante a ser escrita no arquivo); Ex: Writeln (arq, 'Teste de escrita'); {Escreve a string 'Teste de escrita' no arquivo associado à variável arq. Para isso o arquivo arq deve ter sido aberto para escrita} Sintaxe: Readln (variável do tipo text, variável que receberá o dado a ser lido do arquivo); Ex: Readln (arq, nome); {Obtém dados do arquivo identificado por arq e coloca em nome (nome deve ser do tipo string ) }
Diretivas de compilação • O Turbo Pascal possui diretivas de compilaçãopara ativação/desativação da verificação automática de erros, permitindo que o código do erro possa ser identificado com a função IOResult. {$I- } Desativa a verificação automática de erros {$I+} Ativa a verificação automática de erros Quando for utilizada a diretiva {$I-}, o programa não será abortado quando uma operação de Entrada/Saída não for bem sucedida. Se a operação for bem sucedida a função IOResult retorna 0, do contrário retorna um código do erro (Ver exemplo a seguir).
Exemplo: uso das diretivas de compilação Program VerErro; Var arqin : text; a: char; teste: boolean; i : integer; s : string; Begin Assign (arqin, ‘ArqNome.txt'); {$I-} Reset (arqin); {$I+} If IORESULT = 0 then Writeln ('Arquivo encontrado. Aberto com sucesso !!') Else begin Writeln ('Erro na abertura/criando um novo arquivo ArqNome.txt'); REWRITE(arqin); End; End.
Atenção! • Uma importante diferença entre arquivos texto e binários é o fato que arquivos texto são seqüenciais, ou seja, cada linha é lida em ordem, do início ao fim do arquivo. Os arquivos binários podem ser lidos de forma aleatório, por intermédio do cálculo do deslocamento do elemento desejado, a partir do início do arquivo, como veremos mais adiante.
Função EOF Quando precisamos ler todos os registros do arquivo, devemos usar a função EOF para testar a condição de fim de arquivo, pois normalmente não temos como saber quantos registros estão gravados no arquivo que será lido: EOF - Retorna o valor TRUE quando for encontrado o fim de arquivo. Exemplo: while not eof (arq) do begin readln(arq, mensagem); write(mensagem); end;