Eng.
Comp.

ARQUIVOS

28/11/2013

Profª Ms. Engª Elaine Cecília Gatto
Curso de Bacharelado em Engenharia de Computação
Uni...
Introdução

Eng.
Comp.

• São estruturas de Dados manipuladas fora
do ambiente do programa.
• Ambiente do programa: memóri...
Introdução

Eng.
Comp.

• Memória secundária: discos rígidos.
• Discos rídigos:

– É formado por uma coleção de caracteres...
Introdução

Eng.
Comp.

• Arquivo de texto: coleção de caracteres
• Arquivo binário: bytes armazenados

28/11/2013

• Sist...
Introdução

Eng.
Comp.

• Programas de manutenção de um arquivo:

28/11/2013

– Inclusão
– Exclusão Lógica
– Exclusão físi...
Introdução

Eng.
Comp.

• Exclusão física: após a eliminação de um
registro, os demais são deslocados
• Exclusão lógica: o...
Declaração
•

Eng.
Comp.

TYPE : palavra chave utilizada para a criação de novos tipos de dados em
PASCAL

TYPE nome_do_re...
EXEMPLO 1

Eng.
Comp.

//definindo um registro
TYPE registro = RECORD
nome : string[30];
endereco : string[20];
telefone :...
EXEMPLO 2

Eng.
Comp.

//definindo um registro
TYPE registro = RECORD
placa: string[7];
marca : string[20];
ano : integer;...
Associando variáveis a
arquivos

Eng.
Comp.

• ASSIGN:
– Comando usado para associar nomes de
arquivos físicos a variáveis...
Associando variáveis a
arquivos

Eng.
Comp.

ASSIGN(nome_da_variável_do_tipo_arquivo,
’caminho do arquivo no disco’);
ASSI...
Associando variáveis a
arquivos

Eng.
Comp.

ASSIGN(DETRAN,’C:EXEMPLOCARROS.DAT’);

• A variável DETRAN permite acesso ao ...
Criando um novo Arquivo

Eng.
Comp.

• REWRITE

28/11/2013

• Comando para criar novos arquivos;
• Posiciona o seu ponteir...
Criando um novo Arquivo

Eng.
Comp.

REWRITE(nome_da_variavel_do_tipo
_arquivo);
REWRITE(AGENDA);

28/11/2013

REWRITE(DET...
Abrindo arquivos já existentes

Eng.
Comp.

• RESET
• Usado para abrir arquivos;

28/11/2013

• Posiciona o ponteiro no pr...
Abrindo arquivos já existentes

Eng.
Comp.

RESET(nome_da_variavel_do_tipo_
arquivo);
RESET(AGENDA);

28/11/2013

RESET(DE...
Fechando um arquivo

Eng.
Comp.

• CLOSE

28/11/2013

• Usado para fechar arquivos abertos pelo
comando REWRITE ou RESET;
...
Fechando um arquivo

Eng.
Comp.

CLOSE(nome_da_variavel_do_tipo_ar
quivo);
CLOSE(AGENDA);

28/11/2013

CLOSE(DETRAN);

18
Lendo dados de um arquivo

Eng.
Comp.

• READ
• Comando para leitura de arquivos;

28/11/2013

• Para ler dados de um arqu...
Lendo dados de um arquivo

Eng.
Comp.

READ(nome_da_variavel__do_tipo_arquivo,
nome_da_variavel_do_tipo_registro);
//os da...
Gravando dados em um
arquivo

Eng.
Comp.

WRITE: Permite a gravação de dados
WRITE(nome_da_variável_do_tipo_arquivo,
nome_...
Movimentando o ponteiro em
um arquivo

Eng.
Comp.

• SEEK:
• Usado para posicionar o ponteiro no registro
desejado;

28/11...
Movimentando o ponteiro em
um arquivo

Eng.
Comp.

SEEk(nome_da_variavel_do_tipo_arquivo,
numero_do_registro);
//O ponteir...
Obtendo o número de registros
de um arquivo

Eng.
Comp.

• FILESIZE: Usado para retornar o número de
registros existentes ...
Verificando o final do arquivo

Eng.
Comp.

• EOF:
• Verifica se o ponteiro chegou ao final do arquivo;

• Retorno verdade...
Verificando o final do arquivo

Eng.
Comp.

WHILE NOT EOF(nome_da_variavel_do_tipo_arquivo) DO
BEGIN
comandos;
END;

WHILE...
Exemplo

28/11/2013

PROGRAM EX1;
USES CRT;
TYPE aluno = RECORD
numero : INTEGER;
nome : STRING[20];
curso: STRING[15];
no...
Exemplo

Eng.
Comp.

Pegar no syllabus

28/11/2013
28
Upcoming SlideShare
Loading in …5
×

Algoritmos - Arquivos Parte 1

1,581 views

Published on

Algoritmos - Arquivos Parte 1

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,581
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
44
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Algoritmos - Arquivos Parte 1

  1. 1. Eng. Comp. ARQUIVOS 28/11/2013 Profª Ms. Engª Elaine Cecília Gatto Curso de Bacharelado em Engenharia de Computação Universidade do Sagrado Coração – USC Bauru/SP 1
  2. 2. Introdução Eng. Comp. • São estruturas de Dados manipuladas fora do ambiente do programa. • Ambiente do programa: memória principal ou memória ram. um 28/11/2013 • Um arquivo é armazenado em dispositivo de memória secundária 2
  3. 3. Introdução Eng. Comp. • Memória secundária: discos rígidos. • Discos rídigos: – É formado por uma coleção de caracteres ou bytes 28/11/2013 – Podem ser lidos ou escritos por um programa 3
  4. 4. Introdução Eng. Comp. • Arquivo de texto: coleção de caracteres • Arquivo binário: bytes armazenados 28/11/2013 • Sistema de banco de dados: Composto por um ou vários arquivos de dados 4
  5. 5. Introdução Eng. Comp. • Programas de manutenção de um arquivo: 28/11/2013 – Inclusão – Exclusão Lógica – Exclusão física – Alteração – Consulta geral – Consulta específica – Relatórios 5
  6. 6. Introdução Eng. Comp. • Exclusão física: após a eliminação de um registro, os demais são deslocados • Exclusão lógica: os registros possuem um campo adicional, identificando se estão ativos ou inativos (se foram ou não excluídos) 28/11/2013 • CAMPO ATIVO = 0 : o arquivo foi excluído • CAMPO ATIVO = 1 : o arquivo NÃO foi excluído 6
  7. 7. Declaração • Eng. Comp. TYPE : palavra chave utilizada para a criação de novos tipos de dados em PASCAL TYPE nome_do_registro = RECORD Campo1: tipo_do_campo1; Campo2: tipo_do_campo2; ... CampoN: tipo_do_campoN; END; 28/11/2013 nome_do_arquivo = FILE OF nome_do_registro; VAR variavel_do_arquivo: nome_do_arquivo; variavel_do_registro: nome_do_registro; 7
  8. 8. EXEMPLO 1 Eng. Comp. //definindo um registro TYPE registro = RECORD nome : string[30]; endereco : string[20]; telefone : string[10]; END; //variável capaz de referenciar arquivos que armazenam dados no formato registro arquivo = FILE OF registro; 28/11/2013 //as informações geradas pelo programa serão armazenadas em REG. A variável REG será gravada no arquivo referenciado por AGENDA. VAR agenda: arquivo; reg : registro; 8
  9. 9. EXEMPLO 2 Eng. Comp. //definindo um registro TYPE registro = RECORD placa: string[7]; marca : string[20]; ano : integer; END; //variável capaz de referenciar arquivos que armazenam dados no formato registro frota = FILE OF registro; 28/11/2013 //as informações geradas pelo programa serão armazenadas em CARROS. A variável CARROS será gravada no arquivo referenciado por DETRAN. VAR detran: arquivo; carros : registro; 9
  10. 10. Associando variáveis a arquivos Eng. Comp. • ASSIGN: – Comando usado para associar nomes de arquivos físicos a variáveis de um programa. 28/11/2013 – Uma ligação é estabelecida entre a execução de um programa na memória principal e os dados armazenados na memória secundária 10
  11. 11. Associando variáveis a arquivos Eng. Comp. ASSIGN(nome_da_variável_do_tipo_arquivo, ’caminho do arquivo no disco’); ASSIGN(AGENDA,‘AGENDA.DAT’); • Neste exemplo, o arquivo AGENDA.DAT será gravado no mesmo local do arquivo que estiver sendo executado. 28/11/2013 • A variável AGENDA permite acesso ao arquivo AGENDA.DAT 11
  12. 12. Associando variáveis a arquivos Eng. Comp. ASSIGN(DETRAN,’C:EXEMPLOCARROS.DAT’); • A variável DETRAN permite acesso ao arquivo CARROS.DAT 28/11/2013 • CARROS.DAT será armazenado no caminho C:EXEMPLOS 12
  13. 13. Criando um novo Arquivo Eng. Comp. • REWRITE 28/11/2013 • Comando para criar novos arquivos; • Posiciona o seu ponteiro no primeiro registro, apagando todo o conteúdo do arquivo; • Se o arquivo referenciado na criação existir, ele perderá todo o seu conteúdo • Se o arquivo referenciado na criação NÃO existir, o comando forçará a sua criação. 13
  14. 14. Criando um novo Arquivo Eng. Comp. REWRITE(nome_da_variavel_do_tipo _arquivo); REWRITE(AGENDA); 28/11/2013 REWRITE(DETRAN); 14
  15. 15. Abrindo arquivos já existentes Eng. Comp. • RESET • Usado para abrir arquivos; 28/11/2013 • Posiciona o ponteiro no primeiro registro, SEM destruir os dados já existentes; 15
  16. 16. Abrindo arquivos já existentes Eng. Comp. RESET(nome_da_variavel_do_tipo_ arquivo); RESET(AGENDA); 28/11/2013 RESET(DETRAN); 16
  17. 17. Fechando um arquivo Eng. Comp. • CLOSE 28/11/2013 • Usado para fechar arquivos abertos pelo comando REWRITE ou RESET; • Todas as mudanças feitas em um arquivo só são efetivadas quando ele for fechado; • Nenhuma mudança poderá ser feita em um arquivo fechado 17
  18. 18. Fechando um arquivo Eng. Comp. CLOSE(nome_da_variavel_do_tipo_ar quivo); CLOSE(AGENDA); 28/11/2013 CLOSE(DETRAN); 18
  19. 19. Lendo dados de um arquivo Eng. Comp. • READ • Comando para leitura de arquivos; 28/11/2013 • Para ler dados de um arquivo, devemos executar uma leitura no disco; 19
  20. 20. Lendo dados de um arquivo Eng. Comp. READ(nome_da_variavel__do_tipo_arquivo, nome_da_variavel_do_tipo_registro); //os dados lidos no arquivo associado à variável AGENDA serão copiados para a variável de programa REG, que será tratada pelo programna como um registro qualquer READ(AGENDA, REG); 28/11/2013 //os dados lidos no arquivo associado à variável DETRAN serão copiados para a variável de programa CARROS, que será tratada pelo programna como um registro qualquer READ(DETRAN, CARROS); 20
  21. 21. Gravando dados em um arquivo Eng. Comp. WRITE: Permite a gravação de dados WRITE(nome_da_variável_do_tipo_arquivo, nome_da_variavel_do_tipo_registro); //Os dados contidos na variável de programa CARROS serão copiados para o arquivo associado à variável AGENDA WRITE(AGENDA, CARROS); 28/11/2013 //Os dados contidos na variável de programa REG serão copiados para o arquivo associado à variável AGENDA WRITE(AGENDA, REG); 21
  22. 22. Movimentando o ponteiro em um arquivo Eng. Comp. • SEEK: • Usado para posicionar o ponteiro no registro desejado; 28/11/2013 • O primeiro registro do arquivo é sempre o de número zero; 22
  23. 23. Movimentando o ponteiro em um arquivo Eng. Comp. SEEk(nome_da_variavel_do_tipo_arquivo, numero_do_registro); //O ponteiro do arquivo DETRAN está na posição dois, no início do terceiro registro gravado no arquivo SEEK(AGENDA, 2); 28/11/2013 //O ponteiro do arquivo DETRAN está na posição zero, no início do primeiro registro gravado no arquivo SEEK(DETRAN, 0); 23
  24. 24. Obtendo o número de registros de um arquivo Eng. Comp. • FILESIZE: Usado para retornar o número de registros existentes em um arquivo FILESIZE(nome_da_variavel_do_tipo_arquivo); //retorna a quantidade de registros gravados no arquivo DETRAN Tamanho := FILESIZE(DETRAN); 28/11/2013 //retorna a quantidade de registros gravados no arquivo AGENDA Tamanho := FILESIZE(AGENDA); 24
  25. 25. Verificando o final do arquivo Eng. Comp. • EOF: • Verifica se o ponteiro chegou ao final do arquivo; • Retorno verdadeiro: o final do arquivo foi encontrado; 28/11/2013 • Retorno falso: o final do arquivo não foi encontrado 25
  26. 26. Verificando o final do arquivo Eng. Comp. WHILE NOT EOF(nome_da_variavel_do_tipo_arquivo) DO BEGIN comandos; END; WHILE NOT EOF(DETRAN) DO BEGIN READ(DETRAN, REG); END; 28/11/2013 //percorre todos os registros de um arquivo. A cada leitura feita no arquivo DETRAN, o ponteiro movimenta-se para o registro seguinte. Enquanto foram obtidas informações no arquivo, a repetição continuará. Quando o ponteiro chegar ao final do arquivo DETRAN, o WHILE será finalizado. 26
  27. 27. Exemplo 28/11/2013 PROGRAM EX1; USES CRT; TYPE aluno = RECORD numero : INTEGER; nome : STRING[20]; curso: STRING[15]; nota1, nota2 : REAL; END; classe = FILE OF aluno; VAR ALUNOS: classe; A: aluno; BEGIN CLRSCR; ASSIGN(ALUNOS, 'C:Dev-PasALUNOS.TXT'); REWRITE(ALUNOS); CLOSE(ALUNOS); WRITELN('Arquivo de ALUNOS criado com sucesso!!!'); READLN; END. Eng. Comp. 27
  28. 28. Exemplo Eng. Comp. Pegar no syllabus 28/11/2013 28

×