Pascal Arquivos
-
Upload
regis-magalhaes -
Category
Documents
-
view
28.788 -
download
3
Transcript of Pascal Arquivos
http://regispiresmag.googlepages.com/[email protected]
PASCAL
Regis Pires MagalhãesÚltima atualização em 03/09/2007
Arquivos
http://regispiresmag.googlepages.com/[email protected]
Arquivos
O Pascal possui dois tipos de arquivos: Arquivos FILE
Conhecido por Arquivo randômico, ou de acesso aleatório.
É 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.
O acesso a informação é direto. É o tipo de arquivo mais usado no Pascal. Sintaxe:
<Nome da variável> : File of <tipo>;
http://regispiresmag.googlepages.com/[email protected]
Arquivos
Arquivos TEXT Conhecido por arquivo seqüencial. Tipo especial de arquivo que pode ser editado
normalmente através de um editor de textos qualquer.
É dito seqüencial porque a leitura tem que ser feita seqüencialmente do início ao fim do arquivo.
Sintaxe:<Nome da variável> : Text
http://regispiresmag.googlepages.com/[email protected]
Arquivos FILE
Por exemplo, o conjunto de dados sobre as pessoas:
Nome (string); Idade (integer);
Cada conjunto de dados sobre uma determinada pessoa recebe o nome de registro.
Um registro é composto por tipos de dados diferentes.
Cada dado que compõe o registro (nome, idade, etc) é dito ser um campo.
http://regispiresmag.googlepages.com/[email protected]
Arquivos FILEProgram grava_pessoas;Type Registro = Record nome : String; idade : integer; End;Var arquivo : File of Registro; reg : Registro; continua : char;Begin Assign(arquivo, 'pessoas.dat'); Rewrite(arquivo); Repeat Write('Digite o Nome: '); Readln(reg.nome); Write('Digite a Idade: '); Readln(reg.idade); Write(arquivo, reg); Writeln('Deseja continuar (s/n)? '); continua := uppercase(ReadKey()); Until continua = 'N'; Close(arquivo);End.
http://regispiresmag.googlepages.com/[email protected]
Arquivos FILEProgram grava_pessoas;Uses Crt;Type Registro = Record nome : String; idade : integer; End;Var arquivo : File of Registro; reg : Registro; continua : char;Begin Assign(arquivo, '/media/REGIS_PIRES/Pascal/pessoas.dat'); {$I-} Reset(arquivo); {$I+} If IOResult = 0 then Seek(arquivo, FileSize(arquivo)) {Vai p/fim do arquivo} Else ReWrite(arquivo); Repeat Write('Digite o Nome: '); Readln(reg.nome); Write('Digite a Idade: '); Readln(reg.idade); Write(arquivo, reg); Writeln('Deseja continuar (s/n)? '); continua := upcase(ReadKey); Until continua = 'N'; Close(arquivo);End.
http://regispiresmag.googlepages.com/[email protected]
Arquivos FILE
{$I} é uma diretiva de compilação para checagem de erros de entrada e/ou saída.
Ela retorna um código de erro em uma função chamada IOResult.
http://regispiresmag.googlepages.com/[email protected]
Arquivos FILEProgram le_pessoas;Type Registro = Record nome : String; idade : integer; End;Var arquivo : File of Registro; reg : Registro; continua : char;Begin Assign(arquivo, 'pessoas.dat'); Reset(arquivo); While not EOF(Arquivo) do Begin Read(arquivo, reg); Writeln('Nome: ', reg.nome, ' - Idade: ', reg.idade); End; Close(arquivo);End.
http://regispiresmag.googlepages.com/[email protected]
Arquivos TEXTProgram grava_algo;Var Arquivo : Text; algo : String; i : integer;Begin Assign(Arquivo, 'algo.txt'); Rewrite(Arquivo); Write('Digite algo: '); Readln(algo); For i := 1 to 10 do Writeln(Arquivo, algo); Close(Arquivo);End.
http://regispiresmag.googlepages.com/[email protected]
Arquivos TEXTProgram le_algo;Var Arquivo : Text; algo : String;Begin Assign(Arquivo, 'algo.txt'); Reset(Arquivo); While not EOF(Arquivo) do Begin Readln(Arquivo, algo); Writeln(algo); End; Close(Arquivo);End.
http://regispiresmag.googlepages.com/[email protected]
Arquivos – Funções e Procedimentos
Assign Associa o nome externo de um arquivo a uma
variável do tipo FILE ou TEXT. Sintaxe:
Assign(Var nome-pascal:File; nome-externo:String);
Exemplo:Assign(cadastro,'C:\cadastro.dat');
http://regispiresmag.googlepages.com/[email protected]
Arquivos – Funções e Procedimentos
Reset Abre um arquivo já existente. Caso o arquivo
não exista, haverá um erro de execução. Sintaxe:
Reset(Var arquivo:File);
Exemplo:Reset(cadastro);
http://regispiresmag.googlepages.com/[email protected]
Arquivos – Funções e Procedimentos
Rewrite Permite criar e abrir um novo arquivo. Caso o
arquivo já exista, terá seu conteúdo eliminado e será gerado um novo arquivo.
Sintaxe:Rewrite(Var arquivo:File);
Exemplo:Rewrite(cadastro);
http://regispiresmag.googlepages.com/[email protected]
Arquivos – Funções e Procedimentos
Append 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.
Sintaxe:Append(Var arquivo:File);
Exemplo:Append(cadastro);
http://regispiresmag.googlepages.com/[email protected]
Arquivos – Funções e Procedimentos
Close Fecha um arquivo aberto. Sintaxe:
Close(Var arquivo:File);
Exemplo:Close(cadastro);
http://regispiresmag.googlepages.com/[email protected]
Arquivos – Funções e Procedimentos
Erase Apaga um arquivo. Sintaxe:
Erase(Var arquivo:File);
Exemplo:Erase(cadastro);
http://regispiresmag.googlepages.com/[email protected]
Arquivos – Funções e Procedimentos
Rename Renomeia um arquivo. Sintaxe:
Rename(Var arq_ant:File, arq_novo:File);
Exemplo:Rename(tmp, cadastro);
http://regispiresmag.googlepages.com/[email protected]
Arquivos – Funções e Procedimentos
Write / Writeln Grava informações em um arquivo. Após a
execução, o ponteiro de registros do arquivo será deslocado um registro para a frente.
Sintaxe:Write(arquivo:File; registro:Record);
Exemplo:Write(cadastro, registro);
http://regispiresmag.googlepages.com/[email protected]
Arquivos – Funções e Procedimentos
Read / Readln 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.
Sintaxe:Read(arquivo:File; registro:Record);
Exemplo:Read(cadastro, registro);
http://regispiresmag.googlepages.com/[email protected]
Arquivos – Funções e Procedimentos
EOF – End of File (Fim de Arquivo) Esta função nos retorna o valor TRUE quando
for encontrada a marca de fim de arquivo. Sintaxe:
EOF(Var arquivo:File) : boolean;
Exemplo:fim := EOF(cadastro);
http://regispiresmag.googlepages.com/[email protected]
Arquivos – Funções e Procedimentos
Seek Move o ponteiro do arquivo para uma
determinada posição. Sintaxe:
Seek(Var arquivo:File; posição:Longint);
Exemplo:{posiciona o ponteiro no 6º registro}
Seek(cadastro, 5);
http://regispiresmag.googlepages.com/[email protected]
Arquivos – Funções e Procedimentos
FilePos Esta função retorna a posição atual do
ponteiro do arquivo. Sintaxe:
FilePos(Var arquivo:File) : Longint;
Exemplo:ponteiro := FilePos(cadastro);
http://regispiresmag.googlepages.com/[email protected]
Arquivos – Funções e Procedimentos
FileSize Esta função retorna a quantidade de registros
do arquivo. Sintaxe:
FileSize(Var arquivo:File) : Longint;
Exemplo:tamanho := FileSize(cadastro);