Baixe o app para aproveitar ainda mais
Prévia do material em texto
http://regispiresmag.googlepages.com/cefetregispiresmag@gmail.com PASCAL Regis Pires Magalhães Última atualização em 03/09/2007 Arquivos http://regispiresmag.googlepages.com/cefetregispiresmag@gmail.com 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/cefetregispiresmag@gmail.com Arquivos FILE http://regispiresmag.googlepages.com/cefetregispiresmag@gmail.com 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/cefetregispiresmag@gmail.com 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/cefetregispiresmag@gmail.com Arquivos FILE Program 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/cefetregispiresmag@gmail.com Arquivos FILE Program 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/cefetregispiresmag@gmail.com 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/cefetregispiresmag@gmail.com Arquivos FILE Program 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/cefetregispiresmag@gmail.com Arquivos TEXT Program 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/cefetregispiresmag@gmail.com Arquivos TEXT Program 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/cefetregispiresmag@gmail.com 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/cefetregispiresmag@gmail.com 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/cefetregispiresmag@gmail.com 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/cefetregispiresmag@gmail.com 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/cefetregispiresmag@gmail.com Arquivos – Funções e Procedimentos Close Fecha um arquivo aberto. Sintaxe: Close(Var arquivo:File); Exemplo: Close(cadastro); http://regispiresmag.googlepages.com/cefetregispiresmag@gmail.com Arquivos – Funções e Procedimentos Erase Apaga um arquivo. Sintaxe: Erase(Var arquivo:File); Exemplo: Erase(cadastro); http://regispiresmag.googlepages.com/cefetregispiresmag@gmail.com 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/cefetregispiresmag@gmail.com 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/cefetregispiresmag@gmail.com 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/cefetregispiresmag@gmail.com 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/cefetregispiresmag@gmail.com 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/cefetregispiresmag@gmail.com 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/cefetregispiresmag@gmail.com 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); Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24
Compartilhar