Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

skydark007

[Resolvido] Erro Listar Dados - Pascal

Recommended Posts

Bom galera, sou novo na area da programação e estou estudando pascal por causa da facu. To fazendo um projeto de final de bimestre mas ta dando um erro. Eu abro meu programa, seleciono o painel de administrador, coloco a senha e peço pra incluir o produto. vou em listar produto e olho que todas as informações que coloquei em incluir produto esta certa. Mas quando eu fecho o programa totalmente e abro de novo o programa nao da conta de ler os arquivos ja gravadas a nao ser que inclua um novo. gostaria de saber como eu consigo fazer ele exibir(listar) todos os dados que eu gravei sem ter que incluir novos dados.

 

segue o codigo para que possam olhar

 

Program cadastro_cliente_produtor;

 uses crt;

 type

   registro = record

    codi  :  string[6];
    prod  :  string[30];
    marca :  string[30];
    qtd   :  integer;
    vlr   :  real;
    senha :  string[6];

 end;

 var

   cadastro : text;
   reg : registro;



 procedure gravar;

   begin

     assign (cadastro, 'cadastro.txt');

       {$I-}

         append(cadastro);

       if ioresult <> 0 then
          rewrite (cadastro)
       else
          append (cadastro);

        {$I+}

   end;

 procedure janela(X,Y,Lx,Ly,CT,CF:integer);
var i,j:integer;
   begin

Textcolor(CT);
Textbackground(CF);
for i:=1 to Lx do begin
	for j:=1 to Ly do begin
		gotoxy(X+i,Y+j);
		if j=1 then
			if i=1 then write(chr(218)) else
	               	if i=Lx then write(chr(191)) else
			write(chr(196)) else
		if j=Ly then
			if i=1 then write(chr(192)) else
			if i=Lx then write(chr(217)) else
			write(chr(196)) else
		if (i=1) or (i=Lx) then write(chr(179)) else
		write(' ');
	end;
end;

textbackground(WHITE);
textcolor(DARKGRAY);
for i:=1 to Lx do begin
	gotoxy(X+i+1,Y+Ly+1);
	write(chr(177));
end;
for j:=1 to Ly do begin
	gotoxy(X+Lx+1,Y+j+1);
	write(chr(177));
end;
textbackground(CF);
textcolor(CT);

   end;

 procedure incluir_prod;


   begin
     gravar;
     clrscr;
     janela  (55,20,50,20,white,black);
     gotoxy  (61,22);
     writeln ('I N C L U S A O   D E   P R O D U T O');
     gotoxy  (65,25);
     writeln ('CODIGO DO PRODUTO - ');
     gotoxy  (65,27);
     writeln ('NOME DO PRODUTO - ');
     gotoxy  (65,29);
     writeln ('MARCA DO PRODUTO - ');
     gotoxy  (65,31);
     writeln ('QUANTIDADE NO ESTOQUE - ');
     gotoxy  (65,33);
     writeln ('VALOR - ');
     gotoxy  (85,25);
     readln  (reg.codi);
     writeln (cadastro, reg.codi);
     gotoxy  (83,27);
     readln  (reg.prod);
     writeln (cadastro, reg.prod);
     gotoxy  (84,29);
     readln  (reg.marca);
     writeln (cadastro, reg.marca);
     gotoxy  (89,31);
     readln  (reg.qtd);
     writeln (cadastro, reg.qtd);
     gotoxy  (73,33);
     readln  (reg.vlr);
     writeln (cadastro, reg.vlr);
     append  (cadastro);
     close   (cadastro);

     end;

 procedure listar_prod;

    begin

      clrscr;
      assign (cadastro,'cadastro.txt');
      append (cadastro);
      reset  (cadastro);

      while not (eof(cadastro)) do

        begin

          {$I-}
          readln  (cadastro, reg.codi);
          writeln ('C¢digo ....:', reg.codi);
          readln  (cadastro, reg.prod);
          writeln ('Produto ...:', reg.prod);
          readln  (cadastro, reg.marca);
          writeln ('Marca .....:', reg.marca);
          readln  (cadastro, reg.qtd);
          writeln ('Estoque ...:', reg.qtd);
          readln  (cadastro, reg.vlr);
          writeln ('Valor .....:', reg.vlr:0:2);

        end;

      close (cadastro);
      readkey;

    end;

 procedure tela_adm;

   type

     opc = set of char;

   var

     ch : char;
     op : opc;

   begin

     repeat
     op := ['1','2','3','4','5','6'];
     clrscr;
     janela  (55,20,50,20,white,black);
     gotoxy  (61,22);
     writeln ('C A D A S T R O    D E    P R O D U T O S');
     gotoxy  (65,25);
     writeln ('INCLUIR PRODUTO ----------- [1]');
     gotoxy  (65,27);
     writeln ('EDITAR PRODUTO ------------ [2]');
     gotoxy  (65,29);
     writeln ('EXCLUIR PRODUTO ----------- [3]');
     gotoxy  (65,31);
     writeln ('LISTAR PRODUTOS ----------- [4]');
     gotoxy  (65,33);
     writeln ('ALTERAR SENHA ------------- [5]');
     gotoxy  (65,35);
     writeln ('VOLTAR AO MENU PRINCIPAL -- [6]');
     gotoxy  (65,38);
     writeln ('OPۂO --------------------- [ ]');


      repeat

        gotoxy(94,38);
        ch := readkey;
        if not (ch in op)
           then
             write (#7);
        until ch in op;

        case ch of

          '1' : incluir_prod;
          '2' : begin end;
          '3' : begin end;
          '4' : listar_prod;
          '5' : begin end;
          '6' : begin end;

        end;

     until ch = '6';
   end;

 procedure senha_adm_errada;

   begin

      clrscr;
      janela (55,20,50,10,white,black);
      reg.senha := ('12345');
      gotoxy  (61,22);
      writeln ('P A I N E L   A D M I N I S T R A D O R');
      gotoxy  (72,26);
      writeln ('SENHA INCORRETA !!!');
      readkey;



   end;

 procedure senha;

   const

     ENTER = #13;

   var

     tecla : char;
     senha : string;

   begin


     senha :='';
     repeat

       tecla := readkey;
       write ('*');
       if tecla <> ENTER then

         senha := senha+tecla;

     until tecla = ENTER;


     if senha = reg.senha then
        tela_adm else
          senha_adm_errada;

   end;


 procedure senha_adm;

   begin

      clrscr;
      janela (55,20,50,10,white,black);
      reg.senha := ('12345');
      gotoxy  (61,22);
      writeln ('P A I N E L   A D M I N I S T R A D O R');
      gotoxy  (62,26);
      writeln ('ENTRE COM SUA SENHA   -   ');
      gotoxy  (88,26);

      senha;


   end;


 procedure tela_inic;

   type

     opc = set of char;

   var

     ch : char;
     op : opc;

   begin

     repeat
     op := ['1','2','3'];
     clrscr;
     janela  (55,20,50,15,white,black);
     gotoxy  (59,22);
     writeln ('P A I N E L   D E   A D M I N I S T R A € A O ');
     gotoxy  (65,25);
     writeln ('PAINEL ADMINISTRADOR ------ [1]');
     gotoxy  (65,27);
     writeln ('PAINEL CLIENTE ------------ [2]');
     gotoxy  (65,29);
     writeln ('SAIR ---------------------- [3]');
     gotoxy  (65,33);
     writeln ('OPۂO --------------------- [ ]');

      repeat

        gotoxy(94,33);
        ch := readkey;
        if not (ch in op)
           then
             write (#7);
        until ch in op;

        case ch of

          '1' : begin textbackground(black); senha_adm; end;
          '2' : begin end;
          '3' : begin end;

        end;

     until ch = '3';

   end;

 begin

   gravar;
   tela_inic;

 end.

 

AGRADEÇO DESDE JÁ.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.