SlideShare uma empresa Scribd logo
1 de 45
Manipulação de
Arquivos em Pascal
   Estrutura de Dados II



Unida 3
     de
          UFS - DCOMP - Prof. Kenia   1
                   Kodel
Flores?
O verbo educar é originário do latim e quer
dizer extrair de dentro. Logo, a educação
não se constitui em mero estabelecimento de
informações, mas sim de se trabalhar as
potencialidades do ser, a fim de que
floresçam.

              UFS - DCOMP - Prof. Kenia       2
                       Kodel
O segredo é não correr atrás das
borboletas... É cuidar do jardim
para que elas venham até você.
                       .


       Mário Quintana

          UFS - DCOMP - Prof. Kenia   3
                   Kodel
ara implementar
  programa infantil para
  ordenação (alfabética)
        de palavras, que
      estrutura de dados
  você usaria? Por quê?



UFS - DCOMP - Prof. Kenia   4
         Kodel
Considerando a base de dados
  abaixo, referente à tabela de
 preços de uma papelaria, que
    estrutura de dados você
        usaria para mantê-la?




UFS - DCOMP - Prof. Kenia         5
         Kodel
Definição de Arquivos
 Os arquivos são elementos de armazenamento
   de dados residentes em memória secundária,
   ou seja, memória não volátil.

 Portanto são diferentes dos outros itens de
   armazenamento de dados (residentes na
   memória principal): registros, vetores,
   matrizes; os quais não preservam os dados
   neles depositados, após o término da execução
   dos programas que os definem.


                UFS - DCOMP - Prof. Kenia       6
                         Kodel
Declaração Pascal de Arquivos
Do ponto de vista lógico, os arquivos são coleções
   de registros e são declarados:
var
  <Nome>: file of <TipoRegistro>;
Onde:
o Nome – nome do arquivo (interno);
o TipoRegistro – tipo dos registros que
   comporão o arquivo.



                 UFS - DCOMP - Prof. Kenia       7
                          Kodel
Aplicação de Arquivos
Considerando, por exemplo, a
  necessidade de cadastrar os
  pacientes a serem atendidos
      por um médico; onde as
                                            Paaca sto dos da dos
                                               r da r         dos
  consultas são marcadas com             pa es, um array de r r
                                           cient                 egistos
                                                 poder serusa
                                                      ia     do?
      antecedência de meses.


                   UFS - DCOMP - Prof. Kenia                               8
                            Kodel
Aplicação de Arquivos
Possível solução:
type
  TpRegMed = record
               Nome: string[20];
               Convenio,
               Fone: string[10];
               Pago: real;
               Retorno: boolean;
             end;
var
  ArqPacientes: file of TpRegMed;
Considerando a definição dada, nesta temos que
   ArqPacientes é um arquivo composto por registros
   formados por cinco campos: nome, convênio, fone,
   (valor) pago e retorno.
                    UFS - DCOMP - Prof. Kenia     9
                             Kodel
type
  TpRegMed = record
               Nome: string[20];
               Convenio,
               Fone: string[10];
               Pago: real;
               Retorno: boolean;
             end;
var
  ArqPacientes: file of TpRegMed;
 0     ≡
 1
 2
       ≡
       ≡
                                     ≡
 3     ≡
 4     ≡
 5     ≡
 6     ≡
 7     ≡                          Nome         Convênio   Fone   Pago    Retorno

 ...                              Maria        BoaSaude   322    18,50    true
 N     ≡


             ArqPacientes

                   UFS - DCOMP - Prof. Kenia                              10
                            Kodel
Associação a Nome Externo
   Para gerenciamento dos dados mantidos em
    arquivos, são necessários comandos específicos;
    de manipulação de arquivos.
   Um destes refere-se à associação a nome
    externo.
   O assign é o procedimento que possibilita a
    associação do nome externo do arquivo ao seu
    nome lógico (interno).
   Os arquivos são elementos que existem
    independente da existência do programa que o
    manipula. Portanto, apresentam nome externo,
    através do qual, por exemplo, outros programas
    os identificam.

                   UFS - DCOMP - Prof. Kenia          11
                            Kodel
Associação a Nome Externo
Através do nome externo o arquivo mantém-se
    disponível para outros programas.
assign(var <arqinterno>; <arqexterno>: string);

Onde:
 <arqinterno> é o nome lógico do arquivo,
   nome interno
 <arqexterno> é o nome externo do arquivo



                 UFS - DCOMP - Prof. Kenia        12
                          Kodel
Associação a Nome Externo
Exemplo:
assign(ArqPacientes,‘Consultas.dat’);

   Com a execução do programa que manipula
    ArqPacientes, considerando os efeitos da
    instrução dada acima, o arquivo Consultas.dat
    externo, é associado ao arquivo interno
    ArqPacientes.
   Mesmo após a conclusão do referido programa,
    o arquivo Consultas.dat existirá, preservando
    os dados neste mantidos.

                 UFS - DCOMP - Prof. Kenia      13
                          Kodel
Associação a Nome Externo
Exemplo:
assign(ArqPacientes,‘C18nov08.dat’);
...
assign(ArqPacientes,‘C20nov08.dat’);

   Um único arquivo lógico pode ser
    associado a diversos arquivos externos
    (um por vez), dependendo da situação
    problema a ser solucionada.
   Antes da definição do nome externo do
    arquivo pode ser descrito o caminho de
    localização deste: ‘C:Hospital DaSaude
    DrCuraTudoConsultas.dat’
                UFS - DCOMP - Prof. Kenia      14
                         Kodel
Abrindo Arquivos
   Para manipulação de dados mantidos em arquivos
    é preciso abir estes (arquivos).
   Em Pascal há dois comandos para abrir arquivos:
reset(var <Arquivo>);
rewrite(var <Arquivo>);

   O reset é um procedimento útil para abrir
    arquivos já existentes. Preserva os dados
    mantidos neste.
   Com o reset, caso o arquivo não exista, ocorre
    um erro de execução.
                   UFS - DCOMP - Prof. Kenia         15
                            Kodel
Abrindo Arquivos
   Como já dito, tem-se:
reset(var <Arquivo>);
rewrite(var <Arquivo>);

   As características do reset já foram vistas.
   O rewrite é um procedimento útil para
    criar e abrir novos arquivos.
   Caso o arquivo já exista, o rewrite provoca
    a perda dos dados mantidos neste.


                UFS - DCOMP - Prof. Kenia          16
                         Kodel
Abrindo Arquivos
reset(ArqPacientes);
rewrite(ArqPacientes);

   Na prática, se usamos apenas o reset para
    abrir os arquivos manipulados por um
    programa; na primeira vez que o usuário
    executar a aplicação, como o cadastro não
    existe, o reset provocaria erro de execução.


                 UFS - DCOMP - Prof. Kenia         17
                          Kodel
Abrindo Arquivos
reset(ArqPacientes);
rewrite(ArqPacientes);

   E se usamos, na prática, apenas o rewrite,
     para abrir os arquivos manipulados por um
    programa; a primeira vez que o usuário
    executar a aplicação, como o cadastro não
    existe, o rewrite provoca a criação do
    arquivo; mas em todas as outras vezes, que
    o arquivo (cadastro) deve apenas ser
    aberto, o rewrite, provoca a perda dos
    dados.

                UFS - DCOMP - Prof. Kenia        18
                         Kodel
Abrindo Arquivos
reset(ArqPacientes);
rewrite(ArqPacientes);

   Precisamos então: sendo a primeira vez
    que o usuário está executando o
    programa (o cadastro ainda não existe),
    o rewrite deve ser usado para criar o
    arquivo. E, em todas as outras vezes (o
    cadastro já existe e deve ser
    preservado) usar o reset.


             UFS - DCOMP - Prof. Kenia        19
                      Kodel
Abrindo Arquivos
procedure AbrirArquivo(Arquivo: TipoArquivo;
                       NomeArq: string);
begin
  assign(Arquivo,NomeArq);
  {$I-} reset(Arquivo); {$I+}
  if IOResult <> 0 then
     rewrite(Arquivo);
end;
   Neste tenta-se abrir o arquivo com reset,
    presumindo que o Arquivo já exista.
   Caso o arquivo não exista, com {$I-} é efetuado o
    desligamento da diretiva de compilação fazendo
    com que o erro não seja tratado através de
    mensagem ao usuário, mas que seja atribuído um
    código de erro à variável predefinida IOResult.
                   UFS - DCOMP - Prof. Kenia            20
                            Kodel
Abrindo Arquivos
procedure AbrirArquivo(Arquivo: TipoArquivo;
                            NomeArq: string);
begin
  assign(Arquivo,NomeArq);
  {$I-} reset(Arquivo); {$I+}
  if IOResult <> 0 then
     rewrite(Arquivo);
end;
 Se a IOResult for diferente de zero é porque houve erro
    na tentativa de abrir o arquivo. Se houve erro é porque
    o arquivo não existia, então este deve ser criado –
    usando o rewrite.
 Se a IOResult for igual a zero é porque não houve erro
    na tentativa de abrir o arquivo. Ou seja, o arquivo já
    existia e foi devidamente aberto com reset. Neste caso
    o rewrite não precisa ser usado.
                     UFS - DCOMP - Prof. Kenia          21
                              Kodel
Abrindo Arquivos
procedure AbrirArquivo(Arquivo: TipoArquivo;
                           NomeArq: string);
begin
  assign(Arquivo,NomeArq);
  {$I-} reset(Arquivo); {$I+}
  if IOResult <> 0 then
     rewrite(Arquivo);
end;
 Importante destacar que a abertura de um arquivo requer
    a associação prévia deste a um nome externo.
 Em aplicações que manipulam arquivo, a abertura deste
    deve ser efetuada no início da aplicação, e uma única vez,
    não deve ser feita então, por exemplo, em laços (de
    operações).
                      UFS - DCOMP - Prof. Kenia            22
                               Kodel
Fechando Arquivos
close(var <Arquivo>);

   Através do comando close é possível fechar um
    arquivo.
   Vale esclarecer que a ausência do close não é
    identificada nem no processo de compilação, nem
    no de execução . Porém pode provocar danos nos
    dados mantidos no arquivo.
   O processo de fechar um arquivo deve ser efetuada
    ao final da manipulação deste e uma única vez.
    Assim, também, não deve ser mantido em laços de
    operações.
                  UFS - DCOMP - Prof. Kenia             23
                           Kodel
Lendo e Gravando Dados em Arquivos
Para armazenamento, usar:
write(var <Arquivo>,<Registro>);
Para leitura, usar:
read(var <Arquivo>,var <Registro>);
    Exemplo, a instrução write(Arq,R); provoca o
     armazenamento do registro R no arquivo Arq. Mas, resta
     esclarecer em que posição.
    O read e o write são aplicados ao registro da posição
     corrente do arquivo.
    Para gerenciamento de um arquivo é mantido um
     ponteiro numérico que indica a posição (corrente) do
     registro a ser manipulado.
                      UFS - DCOMP - Prof. Kenia              24
                               Kodel
Lendo e Gravando Dados em Arquivos
Para armazenamento, usar:
write(var <Arquivo>,<Registro>);
Para leitura, usar:
read(var <Arquivo>,var <Registro>);
•   Inicialmente, logo após a abertura de um arquivo, o
    ponteiro lógico é setado na posição zero deste.
•   Havendo leituras (read) ou gravações (write), esta
    operação é efetuada sobre o registros que encontra-
    se na posição corrente e o apontador é atualizado em
    uma posição.
                      UFS - DCOMP - Prof. Kenia           25
                               Kodel
Manipulando Arquivos
   Em geral, no processo de inclusão de novos
    registros, estes devem ser adicionados ao
    final do arquivo, após o último registro. Para
    tanto, é útil a função eof.
eof(<Arquivo>):boolean;
   eof é uma função que retorna true quando é
    encontrado o fim do arquivo.




               UFS - DCOMP - Prof. Kenia             26
                        Kodel
Manipulando Arquivos
    Caso seja necessário manipular um registro que
     encontra-se numa dada posição do arquivo, é útil
     procedimento seek.

seek(var <Arquivo>; <posição>: longint);

    Considerando seek(Arq,50); o ponteiro é
     posicionado na posição 50 do arquivo Arq; então a
     próxima operação de leitura ou armazenamento
     será efetuada sobre o registro que se encontra
     nesta posição.



                   UFS - DCOMP - Prof. Kenia             27
                            Kodel
Manipulando Arquivos
    Para identificar em que posição se encontra o
     ponteiro de um arquivo há a função filepos.

filepos(<Arquivo>):longint;

    E para identificar quantos registros compõem o
     arquivo é útil a função filesize.

filesize(<Arquivo>): longint;

    Vale esclarecer que o número de registros que
     compõem um arquivo também é denominado
     tamanho do arquivo.
                   UFS - DCOMP - Prof. Kenia          28
                            Kodel
Aplicando Arquivos
   Arquivos devem ser aplicados em aplicações
    computacionais que manipulam dados que devem
    ser mantidos permanentemente: agenda telefônica,
    estoque, cadastros.
   Vale considerar que a memória permanente tem
    também grande capacidade de armazenamento de
    dados, mas é lenta em relação à memória
    principal.


                  UFS - DCOMP - Prof. Kenia        29
                           Kodel
ARQUIVOS
                            aplicação




          Implementar programa
             de cadastro dos
             medicamentos de
             uma farmácia.


UFS - DCOMP - Prof. Kenia           30
         Kodel
CADASTRO FARMÁCIA
                                                  dados
type
  Str20 = string[20];
  TpReg = record
            Nome: Str20;
            Preco: real;
            Estoque: integer; {Quantidade em estoque}
          end;
var
  ArqFarma: file of TpReg;
  RegFarma: TpReg;
  Opcao: char;
  CadastroVazio,
  Existe: boolean;
  Pos: longint;



                   UFS - DCOMP - Prof. Kenia           31
                            Kodel
begin
  CadastroVazio:=false;                         CADASTRO   FARMÁCIA
  assign(ArqFarma,'Farmas.dat');
  {$I-} reset(ArqFarma); {$I+}
                                                      principal
  if IOResult <> 0 then rewrite(ArqFarma);
  repeat
    clrscr; writeln('*** farma ***'); writeln;
    writeln(' 1 - incluir');
    writeln(' 2 - excluir');
    writeln(' 3 - editar estoque');
    writeln(' 4 - consultar');
    writeln(' 5 - listar todos');
    writeln(' 6 - encerrar');
    writeln; writeln('Opcao:');
    repeat Opcao:=readkey;
    until Opcao in ['1','2','3','4','5','6'];
    if Opcao in ['2','3','4','5'] then
     VerifiqueVazio(CadastroVazio);
    if not CadastroVazio then
      case Opcao of
      '1': incluir;
      '2': excluir;
      '3': alterar;
      '4': consultar;
      '5': listarTodos; end;
  until Opcao = '6';
  close(ArqFarma); end.    UFS - DCOMP - Prof. Kenia             32
                                  Kodel
CADASTRO FARMÁCIA
                                                  principal

procedure VerifiqueVazio(var inicio: boolean);
begin
  inicio:=false;
  if filesize(ArqFarma)=0 then begin
    inicio:=true;
    clrscr;
    writeln('impossivel realizar operação, cadastro vazio');
     writeln('pressione qualquer tecla');
     readln;
  end;
end;


                      UFS - DCOMP - Prof. Kenia                33
                               Kodel
procedure incluir;
var                                       CADASTRO FARMÁCIA
  R: char;
begin
                                                  inclusão
  repeat
     clrscr;
     writeln('*** inclusao ***');
     writeln;
     with RegFarma do begin
       writeln('Nome: ');
       readln(Nome);
       writeln('Preco: ');
       readln(Preco);
       writeln('Estoque: ');
       readln(Estoque);
     end;
     seek(ArqFarma,filesize(ArqFarma));
     write(ArqFarma,RegFarma);
     writeln;
     writeln('Deseja efetuar nova inclusao? S/N ');
     repeat
       R:=upcase(readkey);
     until (R='S') or (R='N');
  until R='N';
end;                 UFS - DCOMP - Prof. Kenia            34
                             Kodel
CADASTRO FARMÁCIA
                                               consulta total
procedure listarTodos;
begin
  clrscr; writeln('*** lista todos ***');
  writeln;
  writeln('Nome':20,'Preco':12,'Estoque':10);
  seek(ArqFarma,0);
  while not eof(ArqFarma) do begin
     read(ArqFarma,RegFarma);
     if RegFarma.Nome <> 'XXX' then
     with RegFarma do
       writeln(Nome:20,Preco:10:2,Estoque:10);
  end;
  writeln;
  writeln('pressione qualquer tecla');
  readkey;
end;
                   UFS - DCOMP - Prof. Kenia                35
                            Kodel
procedure consultar;              CADASTRO FARMÁCIA
var
  Remedio: Str20;
                                          consulta
  R: char;
begin
  repeat
     clrscr; writeln('*** consulta ***');
     writeln;
     writeln('Nome: ');
     readln(Remedio);
     localizar(Remedio,Existe,Pos);
     if Existe then
       with RegFarma do begin
          writeln('Nome: ',Nome);
          writeln('Preco: ',Preco);
          writeln('Estoque: ',Estoque); end
     else
       writeln('*** medicamento inexistente ***');
     writeln;
     writeln('Deseja efetuar nova consulta? S/N ');
     repeat
       R:=upcase(readkey);
     until (R='S') or (R='N');
  until R = 'N';
end;
CADASTRO FARMÁCIA
                                                    consulta
procedure localizar(N: Str20;
                     var Achou: boolean;
                     var Posicao: longint);
begin
  Achou:=false;
  Posicao:=-1;
  seek(ArqFarma,0);
  while not eof(ArqFarma) do begin
     read(ArqFarma,RegFarma);
     if RegFarma.Nome = N then begin
       Achou:=true;
       Posicao:=filepos(ArqFarma)-1; end;
  end;
end;
                           inua           á endo ocaiza
                 Porque cont rabuscamesmo j t l l do o el o desej do?
                                                        ement   a


                   UFS - DCOMP - Prof. Kenia                       37
                            Kodel
ARQUIVOS
                            aplicação


        Implementar
               procedimento de
               exclusão (lógica).




UFS - DCOMP - Prof. Kenia           38
         Kodel
procedure incluir;
var                             CADASTRO FARMÁCIA
  R: char;
begin
                                            inclusão
  repeat
     clrscr;
     writeln('*** inclusao ***');          j a pr
                                           ust r ocediment de
                                                         o
     writeln;                            incl ã de for aev a
                                             us o     ma it r
     with RegFarma do begin
       writeln('Nome: ');                  r â de da
                                            edund ncia dos.
       readln(Nome);
       writeln('Preco: ');
       readln(Preco);
       writeln('Estoque: ');
       readln(Estoque);
     end;
     seek(ArqFarma,filesize(ArqFarma));
     write(ArqFarma,RegFarma);
     writeln;
     writeln('Deseja efetuar nova inclusao? S/N ');
     repeat
       R:=upcase(readkey);
     until (R='S') or (R='N');
  until R='N';
end;
ARQUIVOS
                            aplicação

      Implementar
             procedimento de
             alteração (ajuste
             do estoque).




UFS - DCOMP - Prof. Kenia           40
         Kodel
ARQUIVOS
                            aplicação




             Analisando a situação problema,
                 que outras alterações
                 (edições) são provavelmente
                 necessárias?


UFS - DCOMP - Prof. Kenia                41
         Kodel
ARQUIVOS
                            exercício



               Criar programa Pascal para
                   manter as notas dos
                   alunos da turma de
                   Programação Imperativa:
                   3 notas (de 0 a 10).




UFS - DCOMP - Prof. Kenia              42
         Kodel
ARQUIVOS
                                                      exercício
Criar trecho de código Pascal para
     manter o ranking de um jogo. Neste
     são mantidos nome do jogador e
     pontuação (o que também
     corresponde à entrada). Um nome
     não pode aparecer mais de uma vez
     no jogo. O ranking é composto por
     até 5 jogadores.




                          UFS - DCOMP - Prof. Kenia           43
                                   Kodel
Propor situação problema cuja solução ótima
requer a aplicação de arquivos de dados.
Construir programa correspondente.
Disponibilizar as operações de:
  a) inclusão,
  b) consulta total,
  c) consulta por chave [lida].


      C uidando
            do
       jardim!!!
          UFS - DCOMP - Prof. Kenia           44
                   Kodel
ARQUIVOS
        COMPLEMENTAR ESTUDOS:

Fundamentos da Programação de Computadores
          Ana Fernanda Gomes Ascencio
     Edilene Aparecida Veneruchi de Campos


       Capítulo Arquivo
                                                  45



              UFS - DCOMP - Prof. Kenia      45
                       Kodel

Mais conteúdo relacionado

Mais procurados (20)

Protocolo Http
Protocolo HttpProtocolo Http
Protocolo Http
 
Pascal Arquivos
Pascal ArquivosPascal Arquivos
Pascal Arquivos
 
Programação orientada a objetos em delphi
Programação orientada a objetos em delphiProgramação orientada a objetos em delphi
Programação orientada a objetos em delphi
 
Minicurso Shell Script
Minicurso Shell ScriptMinicurso Shell Script
Minicurso Shell Script
 
Unit 9. Structure and Unions
Unit 9. Structure and UnionsUnit 9. Structure and Unions
Unit 9. Structure and Unions
 
Dart PPT.pptx
Dart PPT.pptxDart PPT.pptx
Dart PPT.pptx
 
Introdução ao React
Introdução ao ReactIntrodução ao React
Introdução ao React
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
 
File handling-c
File handling-cFile handling-c
File handling-c
 
Estrutura de dados - Filas
Estrutura de dados - FilasEstrutura de dados - Filas
Estrutura de dados - Filas
 
Bancos de Dados para Bibliotecarios
Bancos de Dados para BibliotecariosBancos de Dados para Bibliotecarios
Bancos de Dados para Bibliotecarios
 
componentes de eclipse
componentes de eclipsecomponentes de eclipse
componentes de eclipse
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP Básico
 
Apostila de Alocação Dinâmica em C
Apostila de Alocação Dinâmica em CApostila de Alocação Dinâmica em C
Apostila de Alocação Dinâmica em C
 
Páginas dinâmicas
Páginas dinâmicasPáginas dinâmicas
Páginas dinâmicas
 
Basic Java Database Connectivity(JDBC)
Basic Java Database Connectivity(JDBC)Basic Java Database Connectivity(JDBC)
Basic Java Database Connectivity(JDBC)
 
Pointers in C
Pointers in CPointers in C
Pointers in C
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
File handling in C
File handling in CFile handling in C
File handling in C
 
Aula 01 - Revisão Algoritmo 1
Aula 01  - Revisão Algoritmo 1Aula 01  - Revisão Algoritmo 1
Aula 01 - Revisão Algoritmo 1
 

Destaque

EDII06 [2012.1] Arquivos Sequenciais Ordenados por Link
EDII06 [2012.1]   Arquivos Sequenciais Ordenados por LinkEDII06 [2012.1]   Arquivos Sequenciais Ordenados por Link
EDII06 [2012.1] Arquivos Sequenciais Ordenados por LinkKianeLedok
 
EDII03 [2012.1] Manipulação de Arquivos em Pascal
EDII03 [2012.1]  Manipulação de Arquivos em PascalEDII03 [2012.1]  Manipulação de Arquivos em Pascal
EDII03 [2012.1] Manipulação de Arquivos em PascalKianeLedok
 
EDII05 [2012.1] Arquivos Sequenciais Ordenados Fisicamente
EDII05 [2012.1]   Arquivos Sequenciais Ordenados FisicamenteEDII05 [2012.1]   Arquivos Sequenciais Ordenados Fisicamente
EDII05 [2012.1] Arquivos Sequenciais Ordenados FisicamenteKianeLedok
 
EDII08 [2012.1] Arquivos Diretos - Hashing
EDII08 [2012.1]  Arquivos Diretos - HashingEDII08 [2012.1]  Arquivos Diretos - Hashing
EDII08 [2012.1] Arquivos Diretos - HashingKianeLedok
 
EDII01 [2012.1] Acordo de Convivência
EDII01 [2012.1]   Acordo de ConvivênciaEDII01 [2012.1]   Acordo de Convivência
EDII01 [2012.1] Acordo de ConvivênciaKianeLedok
 
EDII04 [2012.1] Arquivos Sequenciais [Definição e Desordenado]
EDII04 [2012.1]   Arquivos Sequenciais [Definição e Desordenado]EDII04 [2012.1]   Arquivos Sequenciais [Definição e Desordenado]
EDII04 [2012.1] Arquivos Sequenciais [Definição e Desordenado]KianeLedok
 
EdII07 [2012.1] Arquivos Diretos - Dicionário de Dados
EdII07 [2012.1]   Arquivos Diretos - Dicionário de DadosEdII07 [2012.1]   Arquivos Diretos - Dicionário de Dados
EdII07 [2012.1] Arquivos Diretos - Dicionário de DadosKianeLedok
 
EDII02 [2012.1] Introdução (Estruturas de Dados)
EDII02 [2012.1]   Introdução (Estruturas de Dados)EDII02 [2012.1]   Introdução (Estruturas de Dados)
EDII02 [2012.1] Introdução (Estruturas de Dados)KianeLedok
 
EDII02 [2012.1] Introdução (Estruturas de Dados)
EDII02 [2012.1]   Introdução (Estruturas de Dados)EDII02 [2012.1]   Introdução (Estruturas de Dados)
EDII02 [2012.1] Introdução (Estruturas de Dados)KianeLedok
 
EDII13 [2012.1] Estruturas de Busca em Texto
EDII13 [2012.1]   Estruturas de Busca em TextoEDII13 [2012.1]   Estruturas de Busca em Texto
EDII13 [2012.1] Estruturas de Busca em TextoKianeLedok
 
EDII10 [2012.1] Recuperação de Chave Secundária - Multilista
EDII10 [2012.1]   Recuperação de Chave Secundária - MultilistaEDII10 [2012.1]   Recuperação de Chave Secundária - Multilista
EDII10 [2012.1] Recuperação de Chave Secundária - MultilistaKianeLedok
 
EDII11 [2012.1] Recuperação de Chave Secundária - Arquivos Invertidos
EDII11 [2012.1]  Recuperação de Chave Secundária - Arquivos InvertidosEDII11 [2012.1]  Recuperação de Chave Secundária - Arquivos Invertidos
EDII11 [2012.1] Recuperação de Chave Secundária - Arquivos InvertidosKianeLedok
 
EDII12 [2012.1] Recupera Chaves Secundárias - Árvores de Assinaturas
EDII12 [2012.1]   Recupera Chaves Secundárias - Árvores de AssinaturasEDII12 [2012.1]   Recupera Chaves Secundárias - Árvores de Assinaturas
EDII12 [2012.1] Recupera Chaves Secundárias - Árvores de AssinaturasKianeLedok
 
EDII09 [2012.1] Arquivos Sequenciais Indexados
EDII09 [2012.1]   Arquivos Sequenciais IndexadosEDII09 [2012.1]   Arquivos Sequenciais Indexados
EDII09 [2012.1] Arquivos Sequenciais IndexadosKianeLedok
 
Abcvida mapa linux
Abcvida mapa linuxAbcvida mapa linux
Abcvida mapa linuxluizsuss
 
Arquivos gerenciamento e organizacao de arquivos
Arquivos gerenciamento e organizacao de arquivosArquivos gerenciamento e organizacao de arquivos
Arquivos gerenciamento e organizacao de arquivosClaudiomar Borduchi
 
EDII15 [2012.1] Classificação Externa
EDII15 [2012.1]   Classificação ExternaEDII15 [2012.1]   Classificação Externa
EDII15 [2012.1] Classificação ExternaKianeLedok
 

Destaque (20)

EDII06 [2012.1] Arquivos Sequenciais Ordenados por Link
EDII06 [2012.1]   Arquivos Sequenciais Ordenados por LinkEDII06 [2012.1]   Arquivos Sequenciais Ordenados por Link
EDII06 [2012.1] Arquivos Sequenciais Ordenados por Link
 
EDII03 [2012.1] Manipulação de Arquivos em Pascal
EDII03 [2012.1]  Manipulação de Arquivos em PascalEDII03 [2012.1]  Manipulação de Arquivos em Pascal
EDII03 [2012.1] Manipulação de Arquivos em Pascal
 
EDII05 [2012.1] Arquivos Sequenciais Ordenados Fisicamente
EDII05 [2012.1]   Arquivos Sequenciais Ordenados FisicamenteEDII05 [2012.1]   Arquivos Sequenciais Ordenados Fisicamente
EDII05 [2012.1] Arquivos Sequenciais Ordenados Fisicamente
 
EDII08 [2012.1] Arquivos Diretos - Hashing
EDII08 [2012.1]  Arquivos Diretos - HashingEDII08 [2012.1]  Arquivos Diretos - Hashing
EDII08 [2012.1] Arquivos Diretos - Hashing
 
EDII01 [2012.1] Acordo de Convivência
EDII01 [2012.1]   Acordo de ConvivênciaEDII01 [2012.1]   Acordo de Convivência
EDII01 [2012.1] Acordo de Convivência
 
EDII04 [2012.1] Arquivos Sequenciais [Definição e Desordenado]
EDII04 [2012.1]   Arquivos Sequenciais [Definição e Desordenado]EDII04 [2012.1]   Arquivos Sequenciais [Definição e Desordenado]
EDII04 [2012.1] Arquivos Sequenciais [Definição e Desordenado]
 
EdII07 [2012.1] Arquivos Diretos - Dicionário de Dados
EdII07 [2012.1]   Arquivos Diretos - Dicionário de DadosEdII07 [2012.1]   Arquivos Diretos - Dicionário de Dados
EdII07 [2012.1] Arquivos Diretos - Dicionário de Dados
 
EDII02 [2012.1] Introdução (Estruturas de Dados)
EDII02 [2012.1]   Introdução (Estruturas de Dados)EDII02 [2012.1]   Introdução (Estruturas de Dados)
EDII02 [2012.1] Introdução (Estruturas de Dados)
 
EDII02 [2012.1] Introdução (Estruturas de Dados)
EDII02 [2012.1]   Introdução (Estruturas de Dados)EDII02 [2012.1]   Introdução (Estruturas de Dados)
EDII02 [2012.1] Introdução (Estruturas de Dados)
 
Arquivos
ArquivosArquivos
Arquivos
 
EDII13 [2012.1] Estruturas de Busca em Texto
EDII13 [2012.1]   Estruturas de Busca em TextoEDII13 [2012.1]   Estruturas de Busca em Texto
EDII13 [2012.1] Estruturas de Busca em Texto
 
EDII10 [2012.1] Recuperação de Chave Secundária - Multilista
EDII10 [2012.1]   Recuperação de Chave Secundária - MultilistaEDII10 [2012.1]   Recuperação de Chave Secundária - Multilista
EDII10 [2012.1] Recuperação de Chave Secundária - Multilista
 
EDII11 [2012.1] Recuperação de Chave Secundária - Arquivos Invertidos
EDII11 [2012.1]  Recuperação de Chave Secundária - Arquivos InvertidosEDII11 [2012.1]  Recuperação de Chave Secundária - Arquivos Invertidos
EDII11 [2012.1] Recuperação de Chave Secundária - Arquivos Invertidos
 
EDII12 [2012.1] Recupera Chaves Secundárias - Árvores de Assinaturas
EDII12 [2012.1]   Recupera Chaves Secundárias - Árvores de AssinaturasEDII12 [2012.1]   Recupera Chaves Secundárias - Árvores de Assinaturas
EDII12 [2012.1] Recupera Chaves Secundárias - Árvores de Assinaturas
 
EDII09 [2012.1] Arquivos Sequenciais Indexados
EDII09 [2012.1]   Arquivos Sequenciais IndexadosEDII09 [2012.1]   Arquivos Sequenciais Indexados
EDII09 [2012.1] Arquivos Sequenciais Indexados
 
Aula 08 secretariado
Aula 08 secretariadoAula 08 secretariado
Aula 08 secretariado
 
Abcvida mapa linux
Abcvida mapa linuxAbcvida mapa linux
Abcvida mapa linux
 
Arquivos gerenciamento e organizacao de arquivos
Arquivos gerenciamento e organizacao de arquivosArquivos gerenciamento e organizacao de arquivos
Arquivos gerenciamento e organizacao de arquivos
 
Aula 02 secretariado
Aula 02 secretariadoAula 02 secretariado
Aula 02 secretariado
 
EDII15 [2012.1] Classificação Externa
EDII15 [2012.1]   Classificação ExternaEDII15 [2012.1]   Classificação Externa
EDII15 [2012.1] Classificação Externa
 

Semelhante a Manipulação de arquivos em Pascal

Ficha de trabalho so 6 m4 linux comandos
Ficha de trabalho so 6 m4   linux comandosFicha de trabalho so 6 m4   linux comandos
Ficha de trabalho so 6 m4 linux comandosAndreiaOliveira94
 
Ficha de trabalho_so_6_m4_-_linux_comandos
Ficha de trabalho_so_6_m4_-_linux_comandosFicha de trabalho_so_6_m4_-_linux_comandos
Ficha de trabalho_so_6_m4_-_linux_comandosomaildoruifilipe
 
Ficha de trabalho so 6 m4 linux comandos
Ficha de trabalho so 6 m4   linux comandosFicha de trabalho so 6 m4   linux comandos
Ficha de trabalho so 6 m4 linux comandosAndreiaOliveira94
 
Ficha de trabalho so 6 m4 linux comandos
Ficha de trabalho so 6 m4   linux comandosFicha de trabalho so 6 m4   linux comandos
Ficha de trabalho so 6 m4 linux comandoskamatozza
 
1 exercicio funcoes com string e manipulacao com arquivo
1 exercicio  funcoes com string e manipulacao com arquivo1 exercicio  funcoes com string e manipulacao com arquivo
1 exercicio funcoes com string e manipulacao com arquivoKievnny Mendonca
 
Ficha de trabalho so 6 m4 linux comandos
Ficha de trabalho so 6 m4   linux comandosFicha de trabalho so 6 m4   linux comandos
Ficha de trabalho so 6 m4 linux comandosfilipereira
 
Ficha de trabalho so 6 m4 linux comandos
Ficha de trabalho so 6 m4   linux comandosFicha de trabalho so 6 m4   linux comandos
Ficha de trabalho so 6 m4 linux comandosAndreiaOliveira94
 
Ficha de trabalho so 6 m4 linux comandos
Ficha de trabalho so 6 m4   linux comandosFicha de trabalho so 6 m4   linux comandos
Ficha de trabalho so 6 m4 linux comandosAndreiaOliveira94
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineOtávio Calaça Xavier
 
Arquivos slides aula25
Arquivos slides aula25Arquivos slides aula25
Arquivos slides aula25AlanoG
 
Ficha de trabalho 6 so
Ficha de trabalho 6 soFicha de trabalho 6 so
Ficha de trabalho 6 soshecklone
 
02 alocacao de_memoria
02 alocacao de_memoria02 alocacao de_memoria
02 alocacao de_memoriasweetgi
 
Ficha de trabalho_so_6_m4_-_linux_comandos
Ficha de trabalho_so_6_m4_-_linux_comandosFicha de trabalho_so_6_m4_-_linux_comandos
Ficha de trabalho_so_6_m4_-_linux_comandosmilanvassaramo
 
Armazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de InformaçãoArmazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de InformaçãoMário Monteiro
 

Semelhante a Manipulação de arquivos em Pascal (20)

Ficha de trabalho so 6 m4 linux comandos
Ficha de trabalho so 6 m4   linux comandosFicha de trabalho so 6 m4   linux comandos
Ficha de trabalho so 6 m4 linux comandos
 
Ficha de trabalho_so_6_m4_-_linux_comandos
Ficha de trabalho_so_6_m4_-_linux_comandosFicha de trabalho_so_6_m4_-_linux_comandos
Ficha de trabalho_so_6_m4_-_linux_comandos
 
Ficha de trabalho so 6 m4 linux comandos
Ficha de trabalho so 6 m4   linux comandosFicha de trabalho so 6 m4   linux comandos
Ficha de trabalho so 6 m4 linux comandos
 
Ficha de trabalho so 6 m4 linux comandos
Ficha de trabalho so 6 m4   linux comandosFicha de trabalho so 6 m4   linux comandos
Ficha de trabalho so 6 m4 linux comandos
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1
 
1 exercicio funcoes com string e manipulacao com arquivo
1 exercicio  funcoes com string e manipulacao com arquivo1 exercicio  funcoes com string e manipulacao com arquivo
1 exercicio funcoes com string e manipulacao com arquivo
 
Ficha de trabalho so 6 m4 linux comandos
Ficha de trabalho so 6 m4   linux comandosFicha de trabalho so 6 m4   linux comandos
Ficha de trabalho so 6 m4 linux comandos
 
Ficha de trabalho so 6 m4 linux comandos
Ficha de trabalho so 6 m4   linux comandosFicha de trabalho so 6 m4   linux comandos
Ficha de trabalho so 6 m4 linux comandos
 
Ficha de trabalho so 6 m4 linux comandos
Ficha de trabalho so 6 m4   linux comandosFicha de trabalho so 6 m4   linux comandos
Ficha de trabalho so 6 m4 linux comandos
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP Doctrine
 
Uso de arquivos na linguagem Java
Uso de arquivos na linguagem Java Uso de arquivos na linguagem Java
Uso de arquivos na linguagem Java
 
Msdos vol4
Msdos vol4Msdos vol4
Msdos vol4
 
Arquivos slides aula25
Arquivos slides aula25Arquivos slides aula25
Arquivos slides aula25
 
Reuse release equivalence principle
Reuse release equivalence principleReuse release equivalence principle
Reuse release equivalence principle
 
Ficha de trabalho 6 so
Ficha de trabalho 6 soFicha de trabalho 6 so
Ficha de trabalho 6 so
 
02 alocacao de_memoria
02 alocacao de_memoria02 alocacao de_memoria
02 alocacao de_memoria
 
Ficha de trabalho_so_6_m4_-_linux_comandos
Ficha de trabalho_so_6_m4_-_linux_comandosFicha de trabalho_so_6_m4_-_linux_comandos
Ficha de trabalho_so_6_m4_-_linux_comandos
 
Armazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de InformaçãoArmazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de Informação
 
Comandos Shell
Comandos ShellComandos Shell
Comandos Shell
 
Ficha de trabalho [6]
Ficha de trabalho [6]Ficha de trabalho [6]
Ficha de trabalho [6]
 

Último

A Inteligência Artificial na Educação e a Inclusão Linguística
A Inteligência Artificial na Educação e a Inclusão LinguísticaA Inteligência Artificial na Educação e a Inclusão Linguística
A Inteligência Artificial na Educação e a Inclusão LinguísticaFernanda Ledesma
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxDeyvidBriel
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxLuizHenriquedeAlmeid6
 
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESPRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESpatriciasofiacunha18
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdfProfGleide
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosAntnyoAllysson
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfEyshilaKelly1
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfIedaGoethe
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptxpamelacastro71
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundonialb
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxconcelhovdragons
 
19 de abril - Dia dos povos indigenas brasileiros
19 de abril - Dia dos povos indigenas brasileiros19 de abril - Dia dos povos indigenas brasileiros
19 de abril - Dia dos povos indigenas brasileirosMary Alvarenga
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxBiancaNogueira42
 
Slides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdfSlides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdfpaulafernandes540558
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOMarcosViniciusLemesL
 
O guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfO guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfErasmo Portavoz
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasRicardo Diniz campos
 

Último (20)

A Inteligência Artificial na Educação e a Inclusão Linguística
A Inteligência Artificial na Educação e a Inclusão LinguísticaA Inteligência Artificial na Educação e a Inclusão Linguística
A Inteligência Artificial na Educação e a Inclusão Linguística
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
 
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESPRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteiros
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdf
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptx
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundo
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
 
19 de abril - Dia dos povos indigenas brasileiros
19 de abril - Dia dos povos indigenas brasileiros19 de abril - Dia dos povos indigenas brasileiros
19 de abril - Dia dos povos indigenas brasileiros
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
 
Slides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdfSlides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdf
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
 
O guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfO guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdf
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecas
 

Manipulação de arquivos em Pascal

  • 1. Manipulação de Arquivos em Pascal Estrutura de Dados II Unida 3 de UFS - DCOMP - Prof. Kenia 1 Kodel
  • 2. Flores? O verbo educar é originário do latim e quer dizer extrair de dentro. Logo, a educação não se constitui em mero estabelecimento de informações, mas sim de se trabalhar as potencialidades do ser, a fim de que floresçam. UFS - DCOMP - Prof. Kenia 2 Kodel
  • 3. O segredo é não correr atrás das borboletas... É cuidar do jardim para que elas venham até você. . Mário Quintana UFS - DCOMP - Prof. Kenia 3 Kodel
  • 4. ara implementar programa infantil para ordenação (alfabética) de palavras, que estrutura de dados você usaria? Por quê? UFS - DCOMP - Prof. Kenia 4 Kodel
  • 5. Considerando a base de dados abaixo, referente à tabela de preços de uma papelaria, que estrutura de dados você usaria para mantê-la? UFS - DCOMP - Prof. Kenia 5 Kodel
  • 6. Definição de Arquivos  Os arquivos são elementos de armazenamento de dados residentes em memória secundária, ou seja, memória não volátil.  Portanto são diferentes dos outros itens de armazenamento de dados (residentes na memória principal): registros, vetores, matrizes; os quais não preservam os dados neles depositados, após o término da execução dos programas que os definem. UFS - DCOMP - Prof. Kenia 6 Kodel
  • 7. Declaração Pascal de Arquivos Do ponto de vista lógico, os arquivos são coleções de registros e são declarados: var <Nome>: file of <TipoRegistro>; Onde: o Nome – nome do arquivo (interno); o TipoRegistro – tipo dos registros que comporão o arquivo. UFS - DCOMP - Prof. Kenia 7 Kodel
  • 8. Aplicação de Arquivos Considerando, por exemplo, a necessidade de cadastrar os pacientes a serem atendidos por um médico; onde as Paaca sto dos da dos r da r dos consultas são marcadas com pa es, um array de r r cient egistos poder serusa ia do? antecedência de meses. UFS - DCOMP - Prof. Kenia 8 Kodel
  • 9. Aplicação de Arquivos Possível solução: type TpRegMed = record Nome: string[20]; Convenio, Fone: string[10]; Pago: real; Retorno: boolean; end; var ArqPacientes: file of TpRegMed; Considerando a definição dada, nesta temos que ArqPacientes é um arquivo composto por registros formados por cinco campos: nome, convênio, fone, (valor) pago e retorno. UFS - DCOMP - Prof. Kenia 9 Kodel
  • 10. type TpRegMed = record Nome: string[20]; Convenio, Fone: string[10]; Pago: real; Retorno: boolean; end; var ArqPacientes: file of TpRegMed; 0 ≡ 1 2 ≡ ≡ ≡ 3 ≡ 4 ≡ 5 ≡ 6 ≡ 7 ≡ Nome Convênio Fone Pago Retorno ... Maria BoaSaude 322 18,50 true N ≡ ArqPacientes UFS - DCOMP - Prof. Kenia 10 Kodel
  • 11. Associação a Nome Externo  Para gerenciamento dos dados mantidos em arquivos, são necessários comandos específicos; de manipulação de arquivos.  Um destes refere-se à associação a nome externo.  O assign é o procedimento que possibilita a associação do nome externo do arquivo ao seu nome lógico (interno).  Os arquivos são elementos que existem independente da existência do programa que o manipula. Portanto, apresentam nome externo, através do qual, por exemplo, outros programas os identificam. UFS - DCOMP - Prof. Kenia 11 Kodel
  • 12. Associação a Nome Externo Através do nome externo o arquivo mantém-se disponível para outros programas. assign(var <arqinterno>; <arqexterno>: string); Onde:  <arqinterno> é o nome lógico do arquivo, nome interno  <arqexterno> é o nome externo do arquivo UFS - DCOMP - Prof. Kenia 12 Kodel
  • 13. Associação a Nome Externo Exemplo: assign(ArqPacientes,‘Consultas.dat’);  Com a execução do programa que manipula ArqPacientes, considerando os efeitos da instrução dada acima, o arquivo Consultas.dat externo, é associado ao arquivo interno ArqPacientes.  Mesmo após a conclusão do referido programa, o arquivo Consultas.dat existirá, preservando os dados neste mantidos. UFS - DCOMP - Prof. Kenia 13 Kodel
  • 14. Associação a Nome Externo Exemplo: assign(ArqPacientes,‘C18nov08.dat’); ... assign(ArqPacientes,‘C20nov08.dat’);  Um único arquivo lógico pode ser associado a diversos arquivos externos (um por vez), dependendo da situação problema a ser solucionada.  Antes da definição do nome externo do arquivo pode ser descrito o caminho de localização deste: ‘C:Hospital DaSaude DrCuraTudoConsultas.dat’ UFS - DCOMP - Prof. Kenia 14 Kodel
  • 15. Abrindo Arquivos  Para manipulação de dados mantidos em arquivos é preciso abir estes (arquivos).  Em Pascal há dois comandos para abrir arquivos: reset(var <Arquivo>); rewrite(var <Arquivo>);  O reset é um procedimento útil para abrir arquivos já existentes. Preserva os dados mantidos neste.  Com o reset, caso o arquivo não exista, ocorre um erro de execução. UFS - DCOMP - Prof. Kenia 15 Kodel
  • 16. Abrindo Arquivos  Como já dito, tem-se: reset(var <Arquivo>); rewrite(var <Arquivo>);  As características do reset já foram vistas.  O rewrite é um procedimento útil para criar e abrir novos arquivos.  Caso o arquivo já exista, o rewrite provoca a perda dos dados mantidos neste. UFS - DCOMP - Prof. Kenia 16 Kodel
  • 17. Abrindo Arquivos reset(ArqPacientes); rewrite(ArqPacientes);  Na prática, se usamos apenas o reset para abrir os arquivos manipulados por um programa; na primeira vez que o usuário executar a aplicação, como o cadastro não existe, o reset provocaria erro de execução. UFS - DCOMP - Prof. Kenia 17 Kodel
  • 18. Abrindo Arquivos reset(ArqPacientes); rewrite(ArqPacientes);  E se usamos, na prática, apenas o rewrite, para abrir os arquivos manipulados por um programa; a primeira vez que o usuário executar a aplicação, como o cadastro não existe, o rewrite provoca a criação do arquivo; mas em todas as outras vezes, que o arquivo (cadastro) deve apenas ser aberto, o rewrite, provoca a perda dos dados. UFS - DCOMP - Prof. Kenia 18 Kodel
  • 19. Abrindo Arquivos reset(ArqPacientes); rewrite(ArqPacientes);  Precisamos então: sendo a primeira vez que o usuário está executando o programa (o cadastro ainda não existe), o rewrite deve ser usado para criar o arquivo. E, em todas as outras vezes (o cadastro já existe e deve ser preservado) usar o reset. UFS - DCOMP - Prof. Kenia 19 Kodel
  • 20. Abrindo Arquivos procedure AbrirArquivo(Arquivo: TipoArquivo; NomeArq: string); begin assign(Arquivo,NomeArq); {$I-} reset(Arquivo); {$I+} if IOResult <> 0 then rewrite(Arquivo); end;  Neste tenta-se abrir o arquivo com reset, presumindo que o Arquivo já exista.  Caso o arquivo não exista, com {$I-} é efetuado o desligamento da diretiva de compilação fazendo com que o erro não seja tratado através de mensagem ao usuário, mas que seja atribuído um código de erro à variável predefinida IOResult. UFS - DCOMP - Prof. Kenia 20 Kodel
  • 21. Abrindo Arquivos procedure AbrirArquivo(Arquivo: TipoArquivo; NomeArq: string); begin assign(Arquivo,NomeArq); {$I-} reset(Arquivo); {$I+} if IOResult <> 0 then rewrite(Arquivo); end;  Se a IOResult for diferente de zero é porque houve erro na tentativa de abrir o arquivo. Se houve erro é porque o arquivo não existia, então este deve ser criado – usando o rewrite.  Se a IOResult for igual a zero é porque não houve erro na tentativa de abrir o arquivo. Ou seja, o arquivo já existia e foi devidamente aberto com reset. Neste caso o rewrite não precisa ser usado. UFS - DCOMP - Prof. Kenia 21 Kodel
  • 22. Abrindo Arquivos procedure AbrirArquivo(Arquivo: TipoArquivo; NomeArq: string); begin assign(Arquivo,NomeArq); {$I-} reset(Arquivo); {$I+} if IOResult <> 0 then rewrite(Arquivo); end;  Importante destacar que a abertura de um arquivo requer a associação prévia deste a um nome externo.  Em aplicações que manipulam arquivo, a abertura deste deve ser efetuada no início da aplicação, e uma única vez, não deve ser feita então, por exemplo, em laços (de operações). UFS - DCOMP - Prof. Kenia 22 Kodel
  • 23. Fechando Arquivos close(var <Arquivo>);  Através do comando close é possível fechar um arquivo.  Vale esclarecer que a ausência do close não é identificada nem no processo de compilação, nem no de execução . Porém pode provocar danos nos dados mantidos no arquivo.  O processo de fechar um arquivo deve ser efetuada ao final da manipulação deste e uma única vez. Assim, também, não deve ser mantido em laços de operações. UFS - DCOMP - Prof. Kenia 23 Kodel
  • 24. Lendo e Gravando Dados em Arquivos Para armazenamento, usar: write(var <Arquivo>,<Registro>); Para leitura, usar: read(var <Arquivo>,var <Registro>);  Exemplo, a instrução write(Arq,R); provoca o armazenamento do registro R no arquivo Arq. Mas, resta esclarecer em que posição.  O read e o write são aplicados ao registro da posição corrente do arquivo.  Para gerenciamento de um arquivo é mantido um ponteiro numérico que indica a posição (corrente) do registro a ser manipulado. UFS - DCOMP - Prof. Kenia 24 Kodel
  • 25. Lendo e Gravando Dados em Arquivos Para armazenamento, usar: write(var <Arquivo>,<Registro>); Para leitura, usar: read(var <Arquivo>,var <Registro>); • Inicialmente, logo após a abertura de um arquivo, o ponteiro lógico é setado na posição zero deste. • Havendo leituras (read) ou gravações (write), esta operação é efetuada sobre o registros que encontra- se na posição corrente e o apontador é atualizado em uma posição. UFS - DCOMP - Prof. Kenia 25 Kodel
  • 26. Manipulando Arquivos  Em geral, no processo de inclusão de novos registros, estes devem ser adicionados ao final do arquivo, após o último registro. Para tanto, é útil a função eof. eof(<Arquivo>):boolean;  eof é uma função que retorna true quando é encontrado o fim do arquivo. UFS - DCOMP - Prof. Kenia 26 Kodel
  • 27. Manipulando Arquivos  Caso seja necessário manipular um registro que encontra-se numa dada posição do arquivo, é útil procedimento seek. seek(var <Arquivo>; <posição>: longint);  Considerando seek(Arq,50); o ponteiro é posicionado na posição 50 do arquivo Arq; então a próxima operação de leitura ou armazenamento será efetuada sobre o registro que se encontra nesta posição. UFS - DCOMP - Prof. Kenia 27 Kodel
  • 28. Manipulando Arquivos  Para identificar em que posição se encontra o ponteiro de um arquivo há a função filepos. filepos(<Arquivo>):longint;  E para identificar quantos registros compõem o arquivo é útil a função filesize. filesize(<Arquivo>): longint;  Vale esclarecer que o número de registros que compõem um arquivo também é denominado tamanho do arquivo. UFS - DCOMP - Prof. Kenia 28 Kodel
  • 29. Aplicando Arquivos  Arquivos devem ser aplicados em aplicações computacionais que manipulam dados que devem ser mantidos permanentemente: agenda telefônica, estoque, cadastros.  Vale considerar que a memória permanente tem também grande capacidade de armazenamento de dados, mas é lenta em relação à memória principal. UFS - DCOMP - Prof. Kenia 29 Kodel
  • 30. ARQUIVOS aplicação Implementar programa de cadastro dos medicamentos de uma farmácia. UFS - DCOMP - Prof. Kenia 30 Kodel
  • 31. CADASTRO FARMÁCIA dados type Str20 = string[20]; TpReg = record Nome: Str20; Preco: real; Estoque: integer; {Quantidade em estoque} end; var ArqFarma: file of TpReg; RegFarma: TpReg; Opcao: char; CadastroVazio, Existe: boolean; Pos: longint; UFS - DCOMP - Prof. Kenia 31 Kodel
  • 32. begin CadastroVazio:=false; CADASTRO FARMÁCIA assign(ArqFarma,'Farmas.dat'); {$I-} reset(ArqFarma); {$I+} principal if IOResult <> 0 then rewrite(ArqFarma); repeat clrscr; writeln('*** farma ***'); writeln; writeln(' 1 - incluir'); writeln(' 2 - excluir'); writeln(' 3 - editar estoque'); writeln(' 4 - consultar'); writeln(' 5 - listar todos'); writeln(' 6 - encerrar'); writeln; writeln('Opcao:'); repeat Opcao:=readkey; until Opcao in ['1','2','3','4','5','6']; if Opcao in ['2','3','4','5'] then VerifiqueVazio(CadastroVazio); if not CadastroVazio then case Opcao of '1': incluir; '2': excluir; '3': alterar; '4': consultar; '5': listarTodos; end; until Opcao = '6'; close(ArqFarma); end. UFS - DCOMP - Prof. Kenia 32 Kodel
  • 33. CADASTRO FARMÁCIA principal procedure VerifiqueVazio(var inicio: boolean); begin inicio:=false; if filesize(ArqFarma)=0 then begin inicio:=true; clrscr; writeln('impossivel realizar operação, cadastro vazio'); writeln('pressione qualquer tecla'); readln; end; end; UFS - DCOMP - Prof. Kenia 33 Kodel
  • 34. procedure incluir; var CADASTRO FARMÁCIA R: char; begin inclusão repeat clrscr; writeln('*** inclusao ***'); writeln; with RegFarma do begin writeln('Nome: '); readln(Nome); writeln('Preco: '); readln(Preco); writeln('Estoque: '); readln(Estoque); end; seek(ArqFarma,filesize(ArqFarma)); write(ArqFarma,RegFarma); writeln; writeln('Deseja efetuar nova inclusao? S/N '); repeat R:=upcase(readkey); until (R='S') or (R='N'); until R='N'; end; UFS - DCOMP - Prof. Kenia 34 Kodel
  • 35. CADASTRO FARMÁCIA consulta total procedure listarTodos; begin clrscr; writeln('*** lista todos ***'); writeln; writeln('Nome':20,'Preco':12,'Estoque':10); seek(ArqFarma,0); while not eof(ArqFarma) do begin read(ArqFarma,RegFarma); if RegFarma.Nome <> 'XXX' then with RegFarma do writeln(Nome:20,Preco:10:2,Estoque:10); end; writeln; writeln('pressione qualquer tecla'); readkey; end; UFS - DCOMP - Prof. Kenia 35 Kodel
  • 36. procedure consultar; CADASTRO FARMÁCIA var Remedio: Str20; consulta R: char; begin repeat clrscr; writeln('*** consulta ***'); writeln; writeln('Nome: '); readln(Remedio); localizar(Remedio,Existe,Pos); if Existe then with RegFarma do begin writeln('Nome: ',Nome); writeln('Preco: ',Preco); writeln('Estoque: ',Estoque); end else writeln('*** medicamento inexistente ***'); writeln; writeln('Deseja efetuar nova consulta? S/N '); repeat R:=upcase(readkey); until (R='S') or (R='N'); until R = 'N'; end;
  • 37. CADASTRO FARMÁCIA consulta procedure localizar(N: Str20; var Achou: boolean; var Posicao: longint); begin Achou:=false; Posicao:=-1; seek(ArqFarma,0); while not eof(ArqFarma) do begin read(ArqFarma,RegFarma); if RegFarma.Nome = N then begin Achou:=true; Posicao:=filepos(ArqFarma)-1; end; end; end; inua á endo ocaiza Porque cont rabuscamesmo j t l l do o el o desej do? ement a UFS - DCOMP - Prof. Kenia 37 Kodel
  • 38. ARQUIVOS aplicação Implementar procedimento de exclusão (lógica). UFS - DCOMP - Prof. Kenia 38 Kodel
  • 39. procedure incluir; var CADASTRO FARMÁCIA R: char; begin inclusão repeat clrscr; writeln('*** inclusao ***'); j a pr ust r ocediment de o writeln; incl ã de for aev a us o ma it r with RegFarma do begin writeln('Nome: '); r â de da edund ncia dos. readln(Nome); writeln('Preco: '); readln(Preco); writeln('Estoque: '); readln(Estoque); end; seek(ArqFarma,filesize(ArqFarma)); write(ArqFarma,RegFarma); writeln; writeln('Deseja efetuar nova inclusao? S/N '); repeat R:=upcase(readkey); until (R='S') or (R='N'); until R='N'; end;
  • 40. ARQUIVOS aplicação Implementar procedimento de alteração (ajuste do estoque). UFS - DCOMP - Prof. Kenia 40 Kodel
  • 41. ARQUIVOS aplicação Analisando a situação problema, que outras alterações (edições) são provavelmente necessárias? UFS - DCOMP - Prof. Kenia 41 Kodel
  • 42. ARQUIVOS exercício Criar programa Pascal para manter as notas dos alunos da turma de Programação Imperativa: 3 notas (de 0 a 10). UFS - DCOMP - Prof. Kenia 42 Kodel
  • 43. ARQUIVOS exercício Criar trecho de código Pascal para manter o ranking de um jogo. Neste são mantidos nome do jogador e pontuação (o que também corresponde à entrada). Um nome não pode aparecer mais de uma vez no jogo. O ranking é composto por até 5 jogadores. UFS - DCOMP - Prof. Kenia 43 Kodel
  • 44. Propor situação problema cuja solução ótima requer a aplicação de arquivos de dados. Construir programa correspondente. Disponibilizar as operações de: a) inclusão, b) consulta total, c) consulta por chave [lida]. C uidando do jardim!!! UFS - DCOMP - Prof. Kenia 44 Kodel
  • 45. ARQUIVOS COMPLEMENTAR ESTUDOS: Fundamentos da Programação de Computadores Ana Fernanda Gomes Ascencio Edilene Aparecida Veneruchi de Campos Capítulo Arquivo 45 UFS - DCOMP - Prof. Kenia 45 Kodel