skydark007 0 Denunciar post Postado Novembro 10, 2011 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
skydark007 0 Denunciar post Postado Novembro 11, 2011 Consegui arrumar o erro, vlw. Agradeço =) Compartilhar este post Link para o post Compartilhar em outros sites