Академический Документы
Профессиональный Документы
Культура Документы
Aula 10 Arquivos
Campo 1
Campo 2
Campo 3
Registro 1
Registro 2
Registro 3
...
Registro N
Arquivos randmicos
Um arquivo randmico organizado com sequncias de
elementos de um mesmo tipo, geralmente registros.
begin
end.
Gravando dados em arquivos binrios
Para gravar informaes em um arquivo binrio necessrio uma
varivel do mesmo tipo na qual o arquivo organizado. Os dados so
gravados na posio atual do arquivo.
var
arqAlunos : File of TAlunos;
alunos : TAlunos;
begin
Assign(arqAlunos, 'dados.dat');
Rewrite(arqAlunos);
alunos.nome := 'Ana';
alunos.sexo := 'F';
alunos.ano_nasc := 1985;
write(arqAlunos, alunos);
close(arqAlunos);
end;
Recuperando dados de arq. binrios
Para recuperar informaes de um arquivo binrio necessrio uma
varivel do mesmo tipo na qual o arquivo organizado.
var
arqAlunos : File of TAlunos;
alunos : TAlunos;
begin
Assign(arqAlunos, 'dados.dat');
Reset(arqAlunos);
while not eof(arqAlunos) do
begin
read(arqAlunos, alunos);
writeln(alunos.nome, ', sexo = ', alunos.sexo);
end;
close(arqAlunos);
end;
Ponteiro lgico de um arquivo binrio
O ponteiro lgico indica a posio atual em que o arquivo se
encontra (o nmero do registro). Arquivos binrios permitem a
movimentao do ponteiro lgico em qualquer direo;
O comando seek utilizado para movimentar o ponteiro um
determinado nmero de posies;
O comando FileSize retorna quantas posies possui um
arquivo e o comando FilePos retorna a posio atual do
ponteiro lgico;
Comandos como writeln e readln movimentam
automaticamente o ponteiro lgico para a prxima posio.
Acessando posies aleatrias em
arquivos binrios
writeln('O arquivo tem ', FileSize(arqAlunos), ' registros');
writeln('Informe o n do registro para consultar ')');
readln(posicao - 1); //A posio inicial sempre zero
seek(arqAlunos, posicao);
read(arqAlunos, a);
writeln('Nome: ', a.nome, ', sexo: ', a.sexo);
http://www.cafw.ufsm.br/~bruno/disciplinas/ling_programacao/exercicios/lista10.html