• Nenhum resultado encontrado

Arquivos. Arquivos. Arquivos

N/A
N/A
Protected

Academic year: 2022

Share "Arquivos. Arquivos. Arquivos"

Copied!
7
0
0

Texto

(1)

Arquivos

Arquivos

• Programa = algoritmo + estrutura de dados

• Variáveis: usadas para construir estruturas de dados no ambiente do programa.

• Arquivos – são estruturas de dados

armazenadas em meios secundários: discos, mémorias flash, “na nuvem”, etc.

• Dados gravados em meios secundários não são voláteis.

Arquivos

• Dados armazenados em arquivos podem ser processados várias vezes, por vários programas, ao longo de muitos anos.

• As operações básicas de acesso a arquivos são:

– gravação ( ou escrita)

– de leitura ( ou de recuperação de dados) – pesquisa.

– atualização.

(2)

Arquivos

• A administração de arquivos em meios secundário são realizadas pelo sistema operacional da máquina.

• São elas:

– alocação e gravação no meio físico.

– organização e manutenção em pasta ou diretórios.

– copia ou remoção de arquivos.

Arquivos

• As operações controladas pelo programador são:

– abertura do arquivo.

– leitura do arquivo.

– gravação do arquivo.

– fechamento do arquivo.

Leitura de dados de Arquivo

• Editar e salvar arquivo de dados em ASCII (Editor do Turbo Pascal, Bloco de Notas, etc.)

• Declarar no Pascal uma variável tipo TEXT para referenciar o arquivo.

• Assinalar o nome do arquivo criado à variável declarada (procedure ASSIGN).

• Abrir o arquivo (procedure RESET)

(3)

Tipos de Arquivo

• Arquivo tipo texto – arquivos deste tipo são gravados como uma longa sequencia de caracteres, por exemplo, no padrão ASCII.

• Arquivo de registro – neste tipo de arquivo os dados são organizados em registros, onde cada registro é composto de um determinado número de campos.

– O arquivo é formado de uma sequencia de registros todos com os mesmos campos.

– Os registros podem ser gravados no formato texto, mas também podem ser gravados no formato binário correspondente a cada tipo definido para cada campo.

Tipos de Arquivo

• Arquivo de acesso sequencial – os registros são gravados sequencialmente e a sua leitura também ocorre de forma sequencial.

• Arquivo de acesso direto – cada registro é associado a uma chave (uma chave, pode ser entendida como um dos campos do registro) e o acesso a um registro em particular se faz pela identificação dessa chave.

Arquivos do tipo texto em Pascal

• Os dados para um programa em Pascal podem ser lidos a partir de um arquivo do tipo texto.

• Para isso e preciso editar e salvar arquivo de

dados usando um editor de texto tipo

ASCII (por exemplo, o Editor do Turbo

Pascal, Bloco de Notas, etc.)

(4)

Por exemplo, criar um arquivo com os elementos de uma matriz 6 x 6:

12 34 56 89 23 33 34 19 50 51 67 81 56 50 91 78 14 20 89 51 78 32 44 25 23 67 14 44 12 90 33 81 20 25 90 23

•Abra, por exemplo, uma janela do editor Bloco de Notas

•Digite os dados no formato mostrado acima.

•Salve o arquivo editado.

•Escolha um nome usando uma extensão a seu critário.

•Exemplo, no Bloco de Notas salve como “DADOS.DAD”

•No Bloco de Notas use “” no nome, senão o o arquivo será salvo com a extensão .txt.

Como programar a leitura?

• Em outras palavras, o que voce deverá colocar no programa em Pascal para que os dados do arquivo sejam lidos?

• Voce vai precisar de:

– identificar e assinalar o arquivo.

– abrir o arquivo para leitura

– direcionar o comando de leitura para o arquivo.

– fechar o arquivo.

Declarando Variável de referência ao arquivo

• Para identificar e assinalar um arquivo em Pascal, é preciso declarar uma variável do tipo arquivo de texto:

var <variável> : TEXT; {file of char }

• Exemplo:

var Arquivo: text;

• O nome do arquivo deverá ser associado à variável e a variável deverá ser usada em todas as operações de acesso ao arquivo (abertura, leitura, escrita e fechamento) .

(5)

Assinalar o nome do arquivo à variável de referência

• Usar o procedimento ASSIGN:

assign(<variável>, <nomeDoArquivo>);

• Exemplo:

...

var Arquivo: text;

begin

assign(Arquivo,’dados.dad’);

Assinalar o nome do arquivo à variável de referência

• O assinalamento pode ser feito através de uma variável literal:

var Arquivo :text;

var NomeDeArquivo: string[20];

...

begin

write ( ‘Digite o nome do arquivo’ );

readln(NomeDeArquivo);

assign(Arquivo,NomeDeArquivo);

...

Abrindo um Arquivo para Leitura

• Usar o procedimento RESET Reset(<variável>);

• Exemplo:

var Arquivo : text;

var NomeDeArquivo: string[20];

...

begin

write ( ‘Digite o nome do arquivo’ );

readln(NomeDeArquivo);

assign(Arquivo,NomeDeArquivo);

reset(Arquivo);

...

(6)

Leitura de dados de Arquivo

• Colocar a variável de referência ao arquivo no comando Read ou ReadLn

...

for L := 1 to 6 do for C := 1 to 6 do

read(Arquivo, Matriz[L,C]);

Fechamento do arquivo

• Para fechar um arquivo usar:

close(<variável de referencia>);

• Exemplo ...

for L := 1 to 6 do for C := 1 to 6 do

read(Arquivo, Matriz[L,C]);

close(Arquivo);

...

Program MatrizSimetrica;

var Matriz :array[1..6,1..6] of integer;

Arquivo : text; {Variável referencia de arquivo}

L,C : integer;

Chave : boolean;

begin { Inicio do Programa }

assing(Arquivo, ‘Dados.dad’ ); { Assinalamento do arquivo } reset(Arquivo); { Abertura do arquivo }

{ Leitura do arquivo } for L := 1 to 6 do for C := 1 to 6 do

read(Arquivo, Matriz[L,C]);

close(Arquivo); { Fechamento do arquivo, após a leitura }

(7)

{ Imprime a matriz lida } for L := 1 to 6 do begin

for C := 1 to 6 do write(Matriz[L,C]:5);

writeln;

end;

{ Verifica se a matriz é simétrica } Chave := true;

for L := 1 to 6 do for C := 1 to 6 do

if (Matriz[L,C] <> Matriz[C,L]) then Chave := false;

if (Chave)

then writeln( ‘A matriz é simétrica’ ) else writeln( ‘A matriz não é simétrica’ );

end.

program MatrizSimetrica;

var Matriz:array[1..6,1..6] of integer;

NomeDeArquivo : string[15]; {Variável para armazenar o nome do arquivo } Arquivo : text; {Variável que será associada ao arquivo } L,C : integer;

Chave : boolean;

Begin { inicio do programa }

{Pede o nome do arquivo a ser lido; se o arquivo não for encontrado outro nome é pedido. O processo só termina quando o nome digitado corresponder ao arquivo existente}

I := 1;

while (I <> 0) do begin

write ('Digite no nome do arquivo a ser lido: ‘ );

readln (NomeDeArquivo); {Le o nome do arquivo que o usuário deseja ler } assign (Arquivo, NomeDeArquivo); {Associa nome do arquivo à variável Arquivo}

{$I-} reset (Arquivo); {$I+} {Abre o arquivo para leitura }

I:= IOResult; {Se o arquivo não for encontrado, IOResult retorna um valor > 0}

if I > 0

then write ( ' Arquivo ‘ , NomeDeArquivo, ' NAO existe.‘ );

end;

Referências

Documentos relacionados

Opinião: Examinamos as demonstrações contábeis individuais da B2W Companhia Digital (“Companhia”), que compreendem o balanço patrimonial em 31 de dezembro de 2019 e as

No trimestre observamos aumento de exames de análises clínicas no mix da receita bruta, principalmente pelo forte crescimento desta categoria de exames nas marcas do

Caracterização do abacaxi do cerrado ou ananás (Ananas

Com isso, objetivou-se identificar em idosos pertencentes a um grupo específico, a presença dos fatores de risco descritos pela North American Nursing Diagnosis Association

Table 2: SLICC damage index, previous cumulative GC dose, baseline bone mineral density (BMD) and risk factors for osteoporosis of premenopausal SLE patients with bone

O Parque Ecológico de Gunma (PEG), com área de 540 hectares administrada pela Associação Gunma Kenjin-Kai do Norte do Brasil, protege um remanescente florestal no município de

1. A Assembleia-Geral é o órgão máximo da associação, do qual fazem parte todos os associados da Rede. A Assembleia-Geral é formada por todos os membros da

Declaramos que recebemos do SISTEMA FIEAM – Comissão Permanente de Licitação do Sistema FIEAM, o Edital de Registro de Preço do Pregão nº 073/2020, para apresentação das