Académique Documents
Professionnel Documents
Culture Documents
Ciências Estatísticas
Computação
2
Arquivo Proprietário x Arquivo Texto
Arquivo Proprietário: só pode ser manipulado pelo
software que “entende” o seu formato (o software
proprietário).
3
Características dos Arquivos Texto
São muito utilizados por Matemáticos, Estatísticos, Físicos, pois seu
formato é “confortável”.
Tabela ASCII:
5
Tabela ASCII
Todos os dados na memória RAM só podem ser armazenados como
números e no formato binário!
6
Tabela ASCII
“@” possui o código 64 (está na linha 6 e na coluna 4 da tabela).
7
Tabela ASCII
Os caracteres de 0 a 32 são chamados de caracteres de
controle.
8
Arquivo Seqüencial
Usados na Estatística para representar um banco de dados
simplificado.
Possui cabeçalho +
observações.
Caracteres mais
usados como
separador “,” (vírgula),
“;” (ponto e vírgula),
TAB (ASCII 9), “ |
“ (pipe) e espaço em
branco (ASCII 32).
9
Arquivo Seqüencial
Arquivos com Campo de Tamanho Fixo (fixed-width column file)
10
Os caracteres “Fim de Linha”
Cada linha de um arquivo seqüencial deve ser finalizada com ENTER
(também conhecido como FIM DE LINHA).
11
Arquivos no Pascal
Arquivos texto podem ser abertos (acessados) por
programas Pascal em dois modos distintos:
12
Arquivos - Modo Leitura
program AbreArquivo; As palavras relacionadas a
var ARQ: text; seguir estão sempre
S: string; envolvidas em programas
begin que manipulam arquivos no
modo de leitura:
assign(ARQ, ‘C:\Letras\AMERICA.TXT’);
Text
reset(ARQ);
Assign
while not EOF(ARQ) do
begin
Reset
readln(ARQ, S);
... EOF
... (outros comandos)
... Readln (ou Read).
end;
Close
close(ARQ);
A seguir, apresenta-se a
readln; “receita de bolo” para
trabalhar com a leitura de
end.
arquivos no Pascal.
13
Arquivos - Modo Leitura
program AbreArquivo; Antes de trabalhar com
var ARQ: text; arquivos texto, é preciso
S: string; declarar uma variável do
begin tipo texto no programa.
end.
14
Arquivos - Modo Leitura
program AbreArquivo; Uma vez declarada a variável
var ARQ: text; text, devemos associá-la a
S: string; um arquivo texto
begin armazenado no HD, Pen-
Drive ou Disquete.
assign(ARQ, ‘C:\Letras\AMERICA.TXT’);
Isto é feito com o uso do
reset(ARQ); comando assign.
while not EOF(ARQ) do No exemplo ao lado,
begin associamos a variável text
ARQ com o arquivo
readln(ARQ, S); C:\Letras\AMERICA.TXT
...
... (outros comandos) Este arquivo está gravado
... no Hard Disk (HD) da
end; máquina onde o programa
Pascal será executado.
close(ARQ);
A partir de agora, podemos
readln; referenciar
C:\Letras\AMERICA.TXT
end. como ARQ dentro de nosso
programa (isso torna menos
cansativa a programação...)
15
Arquivos - Modo Leitura
program AbreArquivo; Após associar um arquivo à
var ARQ: text; variável text, usamos o
S: string; comando reset.
begin
Este é o comando
assign(ARQ, ‘C:\Letras\AMERICA.TXT’); responsável por abrir o
arquivo no modo leitura.
reset(ARQ);
Lembre-se que no modo
while not EOF(ARQ) do
leitura um arquivo não pode
begin
ter o seu conteúdo alterado.
readln(ARQ, S);
... Qualquer tentativa de gravar
dados em um arquivo texto
... (outros comandos)
aberto pelo comando reset,
...
resultará em ERRO!!!
end;
Da mesma forma, se tentarmos
close(ARQ); abrir um arquivo que não
existe (ex: especificamos um
readln; nome errado no assign),
ocorrerá ERRO!!!
end.
16
Arquivos - Modo Leitura
O comando reset também posiciona o ponteiro do arquivo no início
do arquivo.
17
Arquivos - Modo Leitura
PONTEIRO DO ARQUIVO
program AbreArquivo;
var ARQ: text;
S: string;
begin
assign(ARQ, ‘C:\Letras\AMERICA.TXT’);
reset(ARQ);
readln(ARQ, S);
...
... (outros comandos)
...
end;
close(ARQ);
readln;
end.
18
Arquivos - Modo Leitura
program AbreArquivo; Para percorrermos as linhas
var ARQ: text; do arquivo, precisamos
S: string; implementar um loop.
begin
Este loop deve utilizar a
assign(ARQ, ‘C:\Letras\AMERICA.TXT’); função EOF: desta forma ele
é mantido até que o
reset(ARQ); ponteiro do arquivo
alcance o final do arquivo.
while not EOF(ARQ) do
begin
A função EOF é uma função
readln(ARQ, S); booleana que retorna:
...
... (outros comandos) TRUE: caso o ponteiro do
... arquivo tenha alcançado o
end; fim do arquivo.
end.
19
Arquivos - Modo Leitura
program AbreArquivo; while not EOF(ARQ) do
var ARQ: text; significa a mesma coisa que:
S: string;
begin “enquanto não for o fim do
arquivo faça”.
assign(ARQ, ‘C:\Letras\AMERICA.TXT’);
readln(ARQ, S);
... Para melhor compreensão
... (outros comandos) destes conceitos, vamos
... exemplificar com o arquivo
end; do “Hino do América”.
close(ARQ);
readln;
end.
21
Arquivos - Modo Leitura
PONTEIRO DO ARQUIVO
reset(ARQ);
readln(ARQ, S);
...
... (outros comandos)
...
end;
EOF(ARQ) FALSE
S
22
Arquivos - Modo Leitura
PONTEIRO DO ARQUIVO
reset(ARQ);
readln(ARQ, S);
...
... (outros comandos)
...
end;
EOF(ARQ) FALSE
S
23
Arquivos - Modo Leitura
PONTEIRO DO ARQUIVO
reset(ARQ);
readln(ARQ, S);
...
... (outros comandos)
...
end;
O comando readln(ARQ,S) é
encontrado. Duas ações são
realizadas pelo Pascal:
EOF(ARQ) FALSE
readln(ARQ, S);
...
... (outros comandos)
...
end;
EOF(ARQ) FALSE
readln(ARQ, S);
...
... (outros comandos)
...
end;
EOF(ARQ) FALSE
S ================================ 26
Arquivos - Modo Leitura
PONTEIRO DO ARQUIVO
reset(ARQ);
readln(ARQ, S);
...
... (outros comandos)
...
end;
EOF(ARQ) FALSE
S ================================ 27
Arquivos - Modo Leitura
PONTEIRO DO ARQUIVO
reset(ARQ);
readln(ARQ, S);
...
... (outros comandos)
...
end;
EOF(ARQ) FALSE
readln(ARQ, S);
...
... (outros comandos)
...
end;
EOF(ARQ) FALSE
readln(ARQ, S);
...
... (outros comandos)
...
end;
EOF(ARQ) FALSE
readln(ARQ, S);
...
... (outros comandos)
...
end;
EOF(ARQ) FALSE
S Tra-la-la-la-la-la-la 31
Arquivos - Modo Leitura
PONTEIRO DO ARQUIVO
reset(ARQ);
readln(ARQ, S);
...
... (outros comandos)
...
end;
EOF(ARQ) TRUE
readln(ARQ, S);
...
... (outros comandos)
...
end;
EOF(ARQ) TRUE
34
Arquivos - Modo Leitura
program AbreArquivo; No momento em que não
var ARQ: text; precisarmos mais usar o
S: string; arquivo, devemos utilizar o
begin comando close.
35
Arquivos - Modo Escrita
program AbreArquivo; As palavras relacionadas a
var F: text; seguir estão sempre
begin envolvidas em programas
que manipulam arquivos no
assign(F, ‘C:\TESTE.TXT’); modo de escrita:
rewrite(F); Text
writeln(F, ‘PRIMEIRA LINHA’); Assign
writeln(F, ‘SEGUNDA LINHA’);
writeln(F, ‘TERCEIRA LINHA’);
Rewrite
readln; Close
36
Arquivos - Modo Escrita
program AbreArquivo; Em primeiro lugar devemos:
var F: text;
begin Declarar uma variável
como text.
assign(F, ‘C:\TESTE.TXT’);
Usar o comando assign.
rewrite(F);
close(F);
readln;
end.
37
Arquivos - Modo Escrita
program AbreArquivo; O comando rewirte é o
var F: text; responsável por abrir o
begin arquivo no modo escrita.
O rewrite é um
comando perigoso!
38
Arquivos - Modo Escrita
program AbreArquivo; Quando abrimos um arquivo
var F: text; para escrita com o comando
begin rewrite, podemos escrever
linhas neste arquivo com o
assign(F, ‘C:\TESTE.TXT’); uso do comando writeln.
end.
40
Arquivos - Modo Escrita
program AbreArquivo; Um arquivo existente
var F: text; também pode ser aberto
begin para escrita com o uso do
comando append.
assign(F, ‘C:\TESTE.TXT’);
Neste caso, no momento da
append(F); abertura o ponteiro do
arquivo vai para a posição
writeln(F, ‘QUARTA LINHA’); final do arquivo.
writeln(F, ‘QUINTA LINHA’);
close(F);
Desta forma podemos
acrescentar novas linhas no
readln; final do arquivo.
end.
41
Recebendo o Nome do Arquivo pelo Teclado
program AbreOArquivoQueUsuarioQuer;
É possível fazer com que o
var A: text;
usuário especifique o nome
NOME_ARQ, LIN: string;
begin de um arquivo através do
teclado.
write(‘Digite o nome do arquivo: ’);
readln(NOME_ARQ); Basta usar o nome digitado
no comando assign.
assign(A, NOME_ARQ);
reset(A);
readln(A, LIN);
writeln(LIN);
end;
close(A);
readln;
end. 42
FIM
43