PASCAL <ul><ul><li>Regis Pires Magalhães </li></ul></ul><ul><ul><li>Última atualização em 03/09/2007 </li></ul></ul>Arquivos
Arquivos <ul><li>O Pascal possui dois tipos de arquivos: </li></ul><ul><ul><li>Arquivos FILE </li></ul></ul><ul><ul><ul><l...
Arquivos FILE
Arquivos <ul><li>Arquivos TEXT </li></ul><ul><ul><li>Conhecido por arquivo seqüencial. </li></ul></ul><ul><ul><li>Tipo esp...
Arquivos FILE <ul><li>Por exemplo, o conjunto de dados sobre as pessoas: </li></ul><ul><ul><li>Nome (string); </li></ul></...
Arquivos FILE <ul><li>Program grava_pessoas; </li></ul><ul><li>Type Registro = Record </li></ul><ul><li>nome  : String; </...
Arquivos FILE <ul><li>Program grava_pessoas; </li></ul><ul><li>Uses Crt; </li></ul><ul><li>Type Registro = Record </li></u...
Arquivos FILE <ul><li>{$I} é uma diretiva de compilação para checagem de erros de entrada e/ou saída. </li></ul><ul><li>El...
Arquivos FILE <ul><li>Program le_pessoas; </li></ul><ul><li>Type Registro = Record </li></ul><ul><li>nome  : String; </li>...
Arquivos TEXT <ul><li>Program grava_algo; </li></ul><ul><li>Var Arquivo : Text; </li></ul><ul><li>algo  : String; </li></u...
Arquivos TEXT <ul><li>Program le_algo; </li></ul><ul><li>Var Arquivo : Text; </li></ul><ul><li>algo  : String; </li></ul><...
Arquivos – Funções e Procedimentos <ul><li>Assign </li></ul><ul><ul><li>Associa o nome externo de um arquivo a uma variáve...
Arquivos – Funções e Procedimentos <ul><li>Reset </li></ul><ul><ul><li>Abre um arquivo já existente. Caso o arquivo não ex...
Arquivos – Funções e Procedimentos <ul><li>Rewrite </li></ul><ul><ul><li>Permite criar e abrir um novo arquivo. Caso o arq...
Arquivos – Funções e Procedimentos <ul><li>Append </li></ul><ul><ul><li>Abre um arquivo TEXT para inclusão de novas inform...
Arquivos – Funções e Procedimentos <ul><li>Close </li></ul><ul><ul><li>Fecha um arquivo aberto. </li></ul></ul><ul><ul><li...
Arquivos – Funções e Procedimentos <ul><li>Erase </li></ul><ul><ul><li>Apaga um arquivo. </li></ul></ul><ul><ul><li>Sintax...
Arquivos – Funções e Procedimentos <ul><li>Rename </li></ul><ul><ul><li>Renomeia um arquivo. </li></ul></ul><ul><ul><li>Si...
Arquivos – Funções e Procedimentos <ul><li>Write / Writeln </li></ul><ul><ul><li>Grava informações em um arquivo. Após a e...
Arquivos – Funções e Procedimentos <ul><li>Read / Readln </li></ul><ul><ul><li>Atribui um valor obtido por um dispositivo ...
Arquivos – Funções e Procedimentos <ul><li>EOF – End of File (Fim de Arquivo) </li></ul><ul><ul><li>Esta função nos retorn...
Arquivos – Funções e Procedimentos <ul><li>Seek </li></ul><ul><ul><li>Move o ponteiro do arquivo para uma determinada posi...
Arquivos – Funções e Procedimentos <ul><li>FilePos </li></ul><ul><ul><li>Esta função retorna a posição atual do ponteiro d...
Arquivos – Funções e Procedimentos <ul><li>FileSize </li></ul><ul><ul><li>Esta função retorna a quantidade de registros do...
Upcoming SlideShare
Loading in...5
×

Pascal Arquivos

28,837

Published on

2 Comments
11 Likes
Statistics
Notes
No Downloads
Views
Total Views
28,837
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
897
Comments
2
Likes
11
Embeds 0
No embeds

No notes for slide

Pascal Arquivos

  1. 1. PASCAL <ul><ul><li>Regis Pires Magalhães </li></ul></ul><ul><ul><li>Última atualização em 03/09/2007 </li></ul></ul>Arquivos
  2. 2. Arquivos <ul><li>O Pascal possui dois tipos de arquivos: </li></ul><ul><ul><li>Arquivos FILE </li></ul></ul><ul><ul><ul><li>Conhecido por Arquivo randômico, ou de acesso aleatório. </li></ul></ul></ul><ul><ul><ul><ul><li>É possível buscar uma determinada informação em qualquer posição, sem necessidade de percorrer todo o arquivo até alcançar a informação desejada. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>O acesso a informação é direto. </li></ul></ul></ul></ul><ul><ul><ul><li>É o tipo de arquivo mais usado no Pascal. </li></ul></ul></ul><ul><ul><ul><li>Sintaxe : </li></ul></ul></ul><ul><ul><ul><ul><li><Nome da variável> : File of <tipo>; </li></ul></ul></ul></ul>
  3. 3. Arquivos FILE
  4. 4. Arquivos <ul><li>Arquivos TEXT </li></ul><ul><ul><li>Conhecido por arquivo seqüencial. </li></ul></ul><ul><ul><li>Tipo especial de arquivo que pode ser editado normalmente através de um editor de textos qualquer. </li></ul></ul><ul><ul><li>É dito seqüencial porque a leitura tem que ser feita seqüencialmente do início ao fim do arquivo. </li></ul></ul><ul><ul><li>Sintaxe : </li></ul></ul><ul><ul><ul><li><Nome da variável> : Text </li></ul></ul></ul>
  5. 5. Arquivos FILE <ul><li>Por exemplo, o conjunto de dados sobre as pessoas: </li></ul><ul><ul><li>Nome (string); </li></ul></ul><ul><ul><li>Idade (integer); </li></ul></ul><ul><li>Cada conjunto de dados sobre uma determinada pessoa recebe o nome de registro. </li></ul><ul><ul><li>Um registro é composto por tipos de dados diferentes. </li></ul></ul><ul><li>Cada dado que compõe o registro (nome, idade, etc) é dito ser um campo. </li></ul>
  6. 6. Arquivos FILE <ul><li>Program grava_pessoas; </li></ul><ul><li>Type Registro = Record </li></ul><ul><li>nome : String; </li></ul><ul><li>idade : integer; </li></ul><ul><li>End; </li></ul><ul><li>Var arquivo : File of Registro; </li></ul><ul><li>reg : Registro; </li></ul><ul><li>continua : char; </li></ul><ul><li>Begin </li></ul><ul><li>Assign(arquivo, 'pessoas.dat'); </li></ul><ul><li>Rewrite(arquivo); </li></ul><ul><li>Repeat </li></ul><ul><li>Write('Digite o Nome: '); </li></ul><ul><li>Readln(reg.nome); </li></ul><ul><li>Write('Digite a Idade: '); </li></ul><ul><li>Readln(reg.idade); </li></ul><ul><li>Write(arquivo, reg); </li></ul><ul><li>Writeln('Deseja continuar (s/n)? '); </li></ul><ul><li>continua := uppercase(ReadKey()); </li></ul><ul><li>Until continua = 'N'; </li></ul><ul><li>Close(arquivo); </li></ul><ul><li>End. </li></ul>
  7. 7. Arquivos FILE <ul><li>Program grava_pessoas; </li></ul><ul><li>Uses Crt; </li></ul><ul><li>Type Registro = Record </li></ul><ul><li>nome : String; </li></ul><ul><li>idade : integer; </li></ul><ul><li>End; </li></ul><ul><li>Var arquivo : File of Registro; </li></ul><ul><li>reg : Registro; </li></ul><ul><li>continua : char; </li></ul><ul><li>Begin </li></ul><ul><li>Assign(arquivo, '/media/REGIS_PIRES/Pascal/pessoas.dat'); </li></ul><ul><li>{$I-} </li></ul><ul><li>Reset(arquivo); </li></ul><ul><li>{$I+} </li></ul><ul><li>If IOResult = 0 then </li></ul><ul><li>Seek(arquivo, FileSize(arquivo)) {Vai p/fim do arquivo} </li></ul><ul><li>Else </li></ul><ul><li>ReWrite(arquivo); </li></ul><ul><li>Repeat </li></ul><ul><li>Write('Digite o Nome: '); </li></ul><ul><li>Readln(reg.nome); </li></ul><ul><li>Write('Digite a Idade: '); </li></ul><ul><li>Readln(reg.idade); </li></ul><ul><li>Write(arquivo, reg); </li></ul><ul><li>Writeln('Deseja continuar (s/n)? '); </li></ul><ul><li>continua := upcase(ReadKey); </li></ul><ul><li>Until continua = 'N'; </li></ul><ul><li>Close(arquivo); </li></ul><ul><li>End. </li></ul>
  8. 8. Arquivos FILE <ul><li>{$I} é uma diretiva de compilação para checagem de erros de entrada e/ou saída. </li></ul><ul><li>Ela retorna um código de erro em uma função chamada IOResult. </li></ul>
  9. 9. Arquivos FILE <ul><li>Program le_pessoas; </li></ul><ul><li>Type Registro = Record </li></ul><ul><li>nome : String; </li></ul><ul><li>idade : integer; </li></ul><ul><li>End; </li></ul><ul><li>Var arquivo : File of Registro; </li></ul><ul><li>reg : Registro; </li></ul><ul><li>continua : char; </li></ul><ul><li>Begin </li></ul><ul><li>Assign(arquivo, 'pessoas.dat'); </li></ul><ul><li>Reset(arquivo); </li></ul><ul><li>While not EOF(Arquivo) do </li></ul><ul><li>Begin </li></ul><ul><li>Read(arquivo, reg); </li></ul><ul><li>Writeln('Nome: ', reg.nome, </li></ul><ul><li>' - Idade: ', reg.idade); </li></ul><ul><li>End; </li></ul><ul><li>Close(arquivo); </li></ul><ul><li>End. </li></ul>
  10. 10. Arquivos TEXT <ul><li>Program grava_algo; </li></ul><ul><li>Var Arquivo : Text; </li></ul><ul><li>algo : String; </li></ul><ul><li>i : integer; </li></ul><ul><li>Begin </li></ul><ul><li>Assign(Arquivo, 'algo.txt'); </li></ul><ul><li>Rewrite(Arquivo); </li></ul><ul><li>Write('Digite algo: '); </li></ul><ul><li>Readln(algo); </li></ul><ul><li>For i := 1 to 10 do </li></ul><ul><li>Writeln(Arquivo, algo); </li></ul><ul><li>Close(Arquivo); </li></ul><ul><li>End. </li></ul>
  11. 11. Arquivos TEXT <ul><li>Program le_algo; </li></ul><ul><li>Var Arquivo : Text; </li></ul><ul><li>algo : String; </li></ul><ul><li>Begin </li></ul><ul><li>Assign(Arquivo, 'algo.txt'); </li></ul><ul><li>Reset(Arquivo); </li></ul><ul><li>While not EOF(Arquivo) do </li></ul><ul><li>Begin </li></ul><ul><li>Readln(Arquivo, algo); </li></ul><ul><li>Writeln(algo); </li></ul><ul><li>End; </li></ul><ul><li>Close(Arquivo); </li></ul><ul><li>End. </li></ul>
  12. 12. Arquivos – Funções e Procedimentos <ul><li>Assign </li></ul><ul><ul><li>Associa o nome externo de um arquivo a uma variável do tipo FILE ou TEXT. </li></ul></ul><ul><ul><li>Sintaxe: </li></ul></ul><ul><ul><ul><li>Assign(Var nome-pascal:File; nome-externo:String); </li></ul></ul></ul><ul><ul><li>Exemplo: </li></ul></ul><ul><ul><ul><li>Assign(cadastro,'C:cadastro.dat'); </li></ul></ul></ul>
  13. 13. Arquivos – Funções e Procedimentos <ul><li>Reset </li></ul><ul><ul><li>Abre um arquivo já existente. Caso o arquivo não exista, haverá um erro de execução. </li></ul></ul><ul><ul><li>Sintaxe: </li></ul></ul><ul><ul><ul><li>Reset(Var arquivo:File); </li></ul></ul></ul><ul><ul><li>Exemplo: </li></ul></ul><ul><ul><ul><li>Reset(cadastro); </li></ul></ul></ul>
  14. 14. Arquivos – Funções e Procedimentos <ul><li>Rewrite </li></ul><ul><ul><li>Permite criar e abrir um novo arquivo. Caso o arquivo já exista, terá seu conteúdo eliminado e será gerado um novo arquivo. </li></ul></ul><ul><ul><li>Sintaxe: </li></ul></ul><ul><ul><ul><li>Rewrite(Var arquivo:File); </li></ul></ul></ul><ul><ul><li>Exemplo: </li></ul></ul><ul><ul><ul><li>Rewrite(cadastro); </li></ul></ul></ul>
  15. 15. Arquivos – Funções e Procedimentos <ul><li>Append </li></ul><ul><ul><li>Abre um arquivo TEXT para inclusão de novas informações do tipo Write-Only (somente para escrita). Caso o arquivo não exista ocorrerá um erro de execução. As inclusões se processam no final do arquivo. </li></ul></ul><ul><ul><li>Sintaxe: </li></ul></ul><ul><ul><ul><li>Append(Var arquivo:File); </li></ul></ul></ul><ul><ul><li>Exemplo: </li></ul></ul><ul><ul><ul><li>Append(cadastro); </li></ul></ul></ul>
  16. 16. Arquivos – Funções e Procedimentos <ul><li>Close </li></ul><ul><ul><li>Fecha um arquivo aberto. </li></ul></ul><ul><ul><li>Sintaxe: </li></ul></ul><ul><ul><ul><li>Close(Var arquivo:File); </li></ul></ul></ul><ul><ul><li>Exemplo: </li></ul></ul><ul><ul><ul><li>Close(cadastro); </li></ul></ul></ul>
  17. 17. Arquivos – Funções e Procedimentos <ul><li>Erase </li></ul><ul><ul><li>Apaga um arquivo. </li></ul></ul><ul><ul><li>Sintaxe: </li></ul></ul><ul><ul><ul><li>Erase(Var arquivo:File); </li></ul></ul></ul><ul><ul><li>Exemplo: </li></ul></ul><ul><ul><ul><li>Erase(cadastro); </li></ul></ul></ul>
  18. 18. Arquivos – Funções e Procedimentos <ul><li>Rename </li></ul><ul><ul><li>Renomeia um arquivo. </li></ul></ul><ul><ul><li>Sintaxe: </li></ul></ul><ul><ul><ul><li>Rename(Var arq_ant:File, arq_novo:File); </li></ul></ul></ul><ul><ul><li>Exemplo: </li></ul></ul><ul><ul><ul><li>Rename(tmp, cadastro); </li></ul></ul></ul>
  19. 19. Arquivos – Funções e Procedimentos <ul><li>Write / Writeln </li></ul><ul><ul><li>Grava informações em um arquivo. Após a execução, o ponteiro de registros do arquivo será deslocado um registro para a frente. </li></ul></ul><ul><ul><li>Sintaxe: </li></ul></ul><ul><ul><ul><li>Write(arquivo:File; registro:Record); </li></ul></ul></ul><ul><ul><li>Exemplo: </li></ul></ul><ul><ul><ul><li>Write(cadastro, registro); </li></ul></ul></ul>
  20. 20. Arquivos – Funções e Procedimentos <ul><li>Read / Readln </li></ul><ul><ul><li>Atribui um valor obtido por um dispositivo de entrada a uma variável. Esse dispositivo pode ser um arquivo. Após a execução, o ponteiro de registros do arquivo será deslocado um registro para a frente. </li></ul></ul><ul><ul><li>Sintaxe: </li></ul></ul><ul><ul><ul><li>Read(arquivo:File; registro:Record); </li></ul></ul></ul><ul><ul><li>Exemplo: </li></ul></ul><ul><ul><ul><li>Read(cadastro, registro); </li></ul></ul></ul>
  21. 21. Arquivos – Funções e Procedimentos <ul><li>EOF – End of File (Fim de Arquivo) </li></ul><ul><ul><li>Esta função nos retorna o valor TRUE quando for encontrada a marca de fim de arquivo. </li></ul></ul><ul><ul><li>Sintaxe: </li></ul></ul><ul><ul><ul><li>EOF(Var arquivo:File) : boolean; </li></ul></ul></ul><ul><ul><li>Exemplo: </li></ul></ul><ul><ul><ul><li>fim := EOF(cadastro); </li></ul></ul></ul>
  22. 22. Arquivos – Funções e Procedimentos <ul><li>Seek </li></ul><ul><ul><li>Move o ponteiro do arquivo para uma determinada posição. </li></ul></ul><ul><ul><li>Sintaxe: </li></ul></ul><ul><ul><ul><li>Seek(Var arquivo:File; posição:Longint); </li></ul></ul></ul><ul><ul><li>Exemplo: </li></ul></ul><ul><ul><ul><li>{posiciona o ponteiro no 6º registro} </li></ul></ul></ul><ul><ul><ul><li>Seek(cadastro, 5); </li></ul></ul></ul>
  23. 23. Arquivos – Funções e Procedimentos <ul><li>FilePos </li></ul><ul><ul><li>Esta função retorna a posição atual do ponteiro do arquivo. </li></ul></ul><ul><ul><li>Sintaxe: </li></ul></ul><ul><ul><ul><li>FilePos(Var arquivo:File) : Longint; </li></ul></ul></ul><ul><ul><li>Exemplo: </li></ul></ul><ul><ul><ul><li>ponteiro := FilePos(cadastro); </li></ul></ul></ul>
  24. 24. Arquivos – Funções e Procedimentos <ul><li>FileSize </li></ul><ul><ul><li>Esta função retorna a quantidade de registros do arquivo. </li></ul></ul><ul><ul><li>Sintaxe: </li></ul></ul><ul><ul><ul><li>FileSize(Var arquivo:File) : Longint; </li></ul></ul></ul><ul><ul><li>Exemplo: </li></ul></ul><ul><ul><ul><li>tamanho := FileSize(cadastro); </li></ul></ul></ul>
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×