Problema Pascal Zim Arquivo Binário ou Sequêncial ou Estruturado

Eu particularmenente não gosto de usar o Pascal Zim, mas há muitas faculdades / universidades que fazem o Pascal Zim.

Uma dificuldade que vejo no Pascal Zim é o trabalho com arquivos binários, sequênciais ou formatados, pois o Pascal Zim em sua página já diz isso:

PascalZim.jpg

O Pascalzim não aceita arquivos binários e declarações "file of" ?

Não. O compilador suporta apenas arquivos do tipo texto (text). Consulte o arquivo de ajuda para maiores detalhes.

Link: http://pascalzim.tripod.com/

Estou colocando esse problema aqui, pois em alguns projetos de alunos com dúvidas que me enviam o professor pediu para usar um arquivo formatado.

Dúvida sobre os tipos de arquivos:

http://pt.wikipedia.org/wiki/Arquivo_binário

http://pt.wikipedia.org/wiki/Arquivo_de_texto

Vamos a solução:

Já que o PascalZim só aceita arquivo texto, vamos formatá-lo para leitura posterior.

Um arquivo formatado poderá ser composto dentro Type Registro.

 Program Pzim ;  
 Type  
  Cliente = Record  
   Nome : String [50];  
   Endereco : String [60];  
   Telefone : String [10];  
   Salario : Real;  
  End;  
 Var  
  C : Cliente;  
  t : Text;  
  s : String;  
  i : Integer;  
 Begin  
  ClrScr;  
  // Gravar  
  WriteLn ('Arquivo Estrutura Pascal Zim');  
  Assign (t,'arquivo.seq');  
  // Cria Arquivo  
  ReWrite (t);  
  for i := 1 to 3 do  
  Begin  
   Write ('Nome....: '); ReadLn (C.Nome);  
   Write ('Endereco: '); ReadLn (C.Endereco);  
   Write ('Telefone: '); ReadLn (C.Telefone);  
   Write ('Salario.: '); ReadLn (C.Salario);  
   // Grava a Informação  
   Write (t,C.Nome:-50,C.Endereco:-60,C.Telefone:-10,C.Salario:10:2);  
  End;  
  // Fecha o Arquivo  
  Close (t);     
  WriteLn ('Mostra o que foi gravado....');  
  // Ler Arquivo  
  Assign (t,'arquivo.seq');  
  // Abre  
  Reset (t);  
  // Le até o final do Arquivo  
  while not(eof(t)) do  
  Begin  
   Read (t,C.Nome,C.Endereco,C.Telefone,C.Salario);  
   WriteLn ('Nome....: ',C.Nome);  
   WriteLn ('Endereco: ',C.Endereco);  
   WriteLn ('Telefone: ',C.Telefone);  
   WriteLn ('Salario : ',C.Salario:10:2);  
   WriteLn ('---------------------------------------');  
  End;  
  // Fecha o Arquivo  
  Close (t);   
 End.  

A motivação do blog depende da sua contribuição ao blog, então não deixe de prestigiar o blog.

2 comentários:

  1. A partir da versão 5.2.2 o Pascalzim trabalha com arquivos binários.

    ResponderExcluir