Ir ao conteúdo
  • Cadastre-se

Arquivo ajuda


Adson renato

Posts recomendados

Ajuda arquivo;

Textbackground(2);
Textcolor(14);
gotoxy(11,10);Writeln(' ( 1- Vender ) ');
gotoxy(45,10);Writeln(' ( 2- Lista de vendas) ');
Textcolor(14);
Gotoxy(35,15);Write(#219,#219,#219,#219);
Gotoxy(35,15);Write(#219,#219,#219,#219);
readln(opc);
while(opc <> '1' ) and (opc <> '2') do
begin
write('Numero invalida.DIGITE ( 1 ou 2 ).'); read(opc); gotoxy(15,20);
end;
If (opc='1') then
begin
clrscr;
reset(compra);
TEXTCOLOR(2);
TEXTBACKGROUND(15);
assign(arq_venda,'c:\vendas.text');
rewrite (arq_venda);
clrscr;
For L := 30 to 49 do
Begin
gotoxy(L,1);Write (#207);
End;
For L := 30 to 49 do
Begin
gotoxy(L,3);write (#207);
End;
gotoxy(30,2);Write(#175,' Concluindo Venda ',#174);
write ;
gotoxy (14,4);
writeln('Operador: ');
gotoxy (35,4);
readln (operador);
gotoxy (14,6);
writeln('Nome do Cliente: ');
gotoxy (35,6);
readln(nome);
gotoxy (14,8);
writeln('Cpf de ',nome);
gotoxy (35,8);
readln(cpf);
gotoxy (14,10);
writeln('Qual veiculo deseja: ');
gotoxy (35,10);
readln(nome_carro);
writeln ;
while Not EoF(compra) do
begin
read (compra,X);
with X do
begin 17 jul (2 dias atrás) excluir Adson
if carro = nome_carro then
begin
gotoxy (14,12);
writeln ('Codigo ÍÍÍÍÍÍÍÍÍÍ: ',codigo); gotoxy (14,13);
writeln ('Veiculo ÍÍÍÍÍÍÍÍÍ: ',carro); gotoxy (14,14);
writeln ('Preco ÍÍÍÍÍÍÍÍÍÍ: ',preco); gotoxy (14,15);
writeln ('Telefone ÍÍÍÍÍÍÍÍ: ',telefone); gotoxy (14,16);
writeln ('Ano ÍÍÍÍÍÍÍÍÍÍÍÍÍ: ',ano); gotoxy (14,17);
writeln ('Completo ÍÍÍÍÍÍÍÍ: ',completo); gotoxy (14,18);
writeln ('Flex ÍÍÍÍÍÍÍÍÍÍÍÍ: ',Flex); gotoxy (14,19);
writeln ('Cor ÍÍÍÍÍÍÍÍÍÍÍÍÍ: ',cor); gotoxy (14,20);
writeln ('Seguro ÍÍÍÍÍÍÍÍÍÍ: ',Seguro); gotoxy (14,21);
writeln ;
writeln('Seu carro custa ',preco);
writeln('você deseja dividir em quantas parcelas');
readln(resposta);
conte:= preco*resposta;
writeln(conte,' voce pagara por Mes');
write (arq_venda,F);
writeln('Confirma compra ? S/N ');
readln(finaliza);
finaliza := upcase(finaliza);
while
(finaliza <> 'S' )and (finaliza <> 'N') do
begin
clreol;
write ('DIGITE: S/N'); readln(finaliza);
end;
IF (finaliza='S') then
begin
close(arq_venda);
departamento_vendas;
end
else
close(arq_venda);
end;

O problema e que não ta salvando direito ? o que sera ?

OPC 2

Begin
clrscr;
reset(compra);
reset(arq_venda);
while EoF(arq_venda) do
begin
read (arq_venda,f);
with F do
begin
writeln ('Operador: ',operador);
writeln ('Nome do cliente: ',nome);
writeln ('Cpf: ',cpf);
writeln ('Veiculo');
writeln ('Codigo ÍÍÍÍÍÍÍÍÍÍ: ',codigo);
writeln ('Veiculo ÍÍÍÍÍÍÍÍÍ: ',carro);
writeln ('Preco ÍÍÍÍÍÍÍÍÍÍ: ',preco);
writeln ('Telefone ÍÍÍÍÍÍÍÍ: ',telefone);
writeln ('Ano ÍÍÍÍÍÍÍÍÍÍÍÍÍ: ',ano);
writeln ('Completo ÍÍÍÍÍÍÍÍ: ',completo);
writeln ('Flex ÍÍÍÍÍÍÍÍÍÍÍÍ: ',Flex);
writeln ('Cor ÍÍÍÍÍÍÍÍÍÍÍÍÍ: ',cor);
writeln ('Seguro ÍÍÍÍÍÍÍÍÍÍ: ',Seguro);
writeln ('voce pagara', conte ,'por Mes');
writeln ('*Documento a levar para receber as Promissorias');
writeln ('Obrigado');
Writeln ('Compra Efetuada');
end;
readln;
end;

end;
end;
end;

l

qual sera o problema não ta lendo não ?

Link para o comentário
Compartilhar em outros sites

  • Moderador

Ajuda arquivo;


Textcolor(14);
gotoxy(11,10);Writeln(' ( 1- Vender ) ');
gotoxy(45,10);Writeln(' ( 2- Lista de vendas) ');
Textcolor(14);
Gotoxy(35,15);Write(#219,#219,#219,#219);
Gotoxy(35,15);Write(#219,#219,#219,#219);
readln(opc);
while(opc <> '1' ) and (opc <> '2') do
begin
write('Numero invalida.DIGITE ( 1 ou 2 ).'); read(opc); gotoxy(15,20);
end;
If (opc='1') then
begin
clrscr;
reset(compra);
TEXTCOLOR(2);
TEXTBACKGROUND(15);
assign(arq_venda,'c:\vendas.text');
rewrite (arq_venda);
clrscr;
For L := 30 to 49 do
Begin
gotoxy(L,1);Write (#207);
End;
For L := 30 to 49 do
Begin
gotoxy(L,3);write (#207);
End;
gotoxy(30,2);Write(#175,' Concluindo Venda ',#174);
write ;
gotoxy (14,4);
writeln('Operador: ');
gotoxy (35,4);
readln (operador);
gotoxy (14,6);
writeln('Nome do Cliente: ');
gotoxy (35,6);
readln(nome);
gotoxy (14,8);
writeln('Cpf de ',nome);
gotoxy (35,8);
readln(cpf);
gotoxy (14,10);
writeln('Qual veiculo deseja: ');
gotoxy (35,10);
readln(nome_carro);
writeln ;
while Not EoF(compra) do
begin
read (compra,X);
with X do
begin 17 jul (2 dias atrás) excluir Adson
if carro = nome_carro then
begin
gotoxy (14,12);
writeln ('Codigo ÍÍÍÍÍÍÍÍÍÍ: ',codigo); gotoxy (14,13);
writeln ('Veiculo ÍÍÍÍÍÍÍÍÍ: ',carro); gotoxy (14,14);
writeln ('Preco ÍÍÍÍÍÍÍÍÍÍ: ',preco); gotoxy (14,15);
writeln ('Telefone ÍÍÍÍÍÍÍÍ: ',telefone); gotoxy (14,16);
writeln ('Ano ÍÍÍÍÍÍÍÍÍÍÍÍÍ: ',ano); gotoxy (14,17);
writeln ('Completo ÍÍÍÍÍÍÍÍ: ',completo); gotoxy (14,18);
writeln ('Flex ÍÍÍÍÍÍÍÍÍÍÍÍ: ',Flex); gotoxy (14,19);
writeln ('Cor ÍÍÍÍÍÍÍÍÍÍÍÍÍ: ',cor); gotoxy (14,20);
writeln ('Seguro ÍÍÍÍÍÍÍÍÍÍ: ',Seguro); gotoxy (14,21);
writeln ;
writeln('Seu carro custa ',preco);
writeln('você deseja dividir em quantas parcelas');
readln(resposta);
conte:= preco*resposta;
writeln(conte,' voce pagara por Mes');
write (arq_venda,F);
writeln('Confirma compra ? S/N ');
readln(finaliza);
finaliza := upcase(finaliza);
while
(finaliza <> 'S' )and (finaliza <> 'N') do
begin
clreol;
write ('DIGITE: S/N'); readln(finaliza);
end;
IF (finaliza='S') then
begin
close(arq_venda);
departamento_vendas;
end
else
close(arq_venda);
end;
Textbackground(2);

O problema e que não ta salvando direito ? o que sera ?

OPC 2


clrscr;
reset(compra);
reset(arq_venda);
while EoF(arq_venda) do
begin
read (arq_venda,f);
with F do
begin
writeln ('Operador: ',operador);
writeln ('Nome do cliente: ',nome);
writeln ('Cpf: ',cpf);
writeln ('Veiculo');
writeln ('Codigo ÍÍÍÍÍÍÍÍÍÍ: ',codigo);
writeln ('Veiculo ÍÍÍÍÍÍÍÍÍ: ',carro);
writeln ('Preco ÍÍÍÍÍÍÍÍÍÍ: ',preco);
writeln ('Telefone ÍÍÍÍÍÍÍÍ: ',telefone);
writeln ('Ano ÍÍÍÍÍÍÍÍÍÍÍÍÍ: ',ano);
writeln ('Completo ÍÍÍÍÍÍÍÍ: ',completo);
writeln ('Flex ÍÍÍÍÍÍÍÍÍÍÍÍ: ',Flex);
writeln ('Cor ÍÍÍÍÍÍÍÍÍÍÍÍÍ: ',cor);
writeln ('Seguro ÍÍÍÍÍÍÍÍÍÍ: ',Seguro);
writeln ('voce pagara', conte ,'por Mes');
writeln ('*Documento a levar para receber as Promissorias');
writeln ('Obrigado');
Writeln ('Compra Efetuada');
end;
readln;
end;

end;
end;
end;
Begin

l

qual sera o problema não ta lendo não ?

Olá,

O problema e que não ta salvando direito ? o que sera ?

Para esse caso seja mais específico... forneça-nos mais detalhes do que está ocorrendo...

Uma coisa que você já poderia testar é substituir os Read por ReadLN... - O Read pode se comportar de forma inadequada... (só use-o quando você tiver certeza das características dele... caso contrário use sempre Readln!!!)

qual sera o problema não ta lendo não ?

Neste caso pode ser também algo relacionado ao read x readln ou também na hora de escrever no arquivo... que vai ter diferenças com o write e writeln na hora de escrever!!!

De certo modo, a leitura só vai ser correta se previamente a escrita também for!!!

Abraços

Link para o comentário
Compartilhar em outros sites

Olá Adson renato, estou desenvolvendo um código com base no seu, eu preferi fazer assim para ficar melhor para todos do forum entender, pois trabalhar com arquivo em programação se deve ter bastante atenção. Estou até pensando em fazer um tutorial explicando de forma clara e mais fácil possível, como trabalhar com manipulação de arquivos.

Estou quase terminando o código.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Ta aí galera finalmente terminei. Demorei um pouco mas é porque eu estava viajando.

O programa ficou um pouco grande, algo em torno de 603 linhas, pois eu coloquei uma interface bacana tudo centralizado e com cores, e ainda um menu de seleção com setas que se movem, mais tá todo comentado assim fica bem fácil de entender.

Ficou faltando os procedimentos para excluir os cadastros mas esse eu deixo com você.

Se tiver dúvidas é só perguntar.



{***************************************************************************}
{ Escrito por Kelson Alexandre }
{ Universidade Estadual do Piaui - UESPI }
{***************************************************************************}

Program arquivo;
uses
crt;

const
max = 5001; { Limite maximo de gegistros, se quiser mais ‚ s¢ aumentar.
Sempre coloque um numero a mais, os asquivos come‡am a gravar
do 0 e o c¢digo de controle dos veiculos não fica legal com o
0, então o numero a mais ‚ é o 0 ignorado. Menos no rec 3
onde eu deixo o registro 0 para guardar o nome da loja. }

type
rec = RECORD { Registro dos veiculos }
veiculo, ano, cor, seguro : string[40];
preco : real;
completo, flex : char;
espaco : boolean; { Indica se o espa‡o do registro est* ocupado ou nÆo }
End;

rec2 = RECORD { Registros dos clientes }
nome, cpf, endereco, cidade : string[40];
espaco : boolean;
End;

rec3 = RECORD { Registro de vendedores }
{ O nome da loja ocupa somente o registro (0) }
nome, vendedor : string[40];
espaco : boolean;
End;

var
nome_loja_arq : file of rec3; { Manipulador do arquivo }
nome_loja : rec3;
cliente_arq : file of rec2; { Manipulador do arquivo }
cliente_ca : rec2;
auto_arq : file of rec; { Manipulador do arquivo }
auto_ca : rec;
pos,posi,alinha,i : integer;


{ Esse ‚ um procedimento que eu fiz parecido com clrscr, s¢ que ele nÆo limpa a tela toda
apenas uma parte para nÆo apagar o cabe‡alho do programa. }
Procedure clr;
var
i2:integer;
begin
for i:=3 to 24 do
for i2:=2 to 78 do
begin
gotoxy(i2,i); writeln(' ');
end;
end;

{ Procedimento que posiciona o ponteiro do arquivo automaticamente em um espa‡o livre. }
Procedure posicao_vendedor;
begin
posi:=0;
repeat
inc(posi);
if posi > max-1 then
begin
writeln('Espa‡o insuficiente!');
delay(1000);
exit;
end;
seek(nome_loja_arq, posi);
read(nome_loja_arq, nome_loja);
until nome_loja.espaco = true;
end;


{ Procedimento que posiciona o ponteiro do arquivo automaticamente em um espa‡o livre. }
Procedure posicao_auto;
begin
posi:=0;
repeat
inc(posi);
if posi > max-1 then
begin
writeln('Espa‡o insuficiente!');
delay(1000);
exit;
end;
seek(auto_arq, posi);
read(auto_arq, auto_ca);
until auto_ca.espaco = true;
end;

{ Procedimento que posiciona o ponteiro do arquivo automaticamente em um espa‡o livre. }
Procedure posicao_cliente;
begin
posi:=0;
repeat
inc(posi);
if posi > max-1 then
begin
writeln('Espa‡o insuficiente!');
delay(1000);
exit;
end;
seek(cliente_arq, posi);
read(cliente_arq, cliente_ca);
until cliente_ca.espaco = true;
end;

{ Procedimento que altera o nome da loja }
Procedure novo_nome_loja;
var
conf : char;

begin
clr;
textcolor(14);
seek(nome_loja_arq,0); { Posiciona o ponteiro no registro 0. }
read(nome_loja_arq, nome_loja); { Ler o nome da loja, depois de ler o ponteiro pula pro pr¢ximo registro }
gotoxy(3,5); writeln('Nome atual: ',nome_loja.nome); { Mostra o nome atual }
gotoxy(3,6); write('Novo nome: ');
readln(nome_loja.nome);
gotoxy(3,7); write('Deseja salvar? (S/N)');
conf:=readkey;
if conf in ['S', 's'] then
begin
seek(nome_loja_arq,0); { Depois da confirma‡Æo posiciona novamente o ponteiro no gegistro 0 que estava no 1 }
write(nome_loja_arq, nome_loja); { GRava
clr;
gotoxy(26,12); write('O nome da loja foi atualizado!');
delay(1000);
end;
end;

{ Procedimento que exibe na tela uma seta que percorre as op‡äes do menu }
Procedure selec;
var
op,seta : char;

Begin
Textcolor(14);
{ Exibe as op‡äes. O valor de y do gotoxy representa uma identifica‡Æo da op‡Æo escolhida }
gotoxy(31,11);Writeln('1 Novos cadastros');
gotoxy(31,13);Writeln('2 Vender');
gotoxy(31,15);Writeln('3 Mudar nome da loja');
gotoxy(31,17);Writeln('X Sair');
seta:=#26; { #26 c¢gigo ascii da seta }
pos:=11; { Coloca a seta na 1¦ op‡Æo }
gotoxy(29,pos); writeln(seta);
repeat
gotoxy(1,25); write; { Posiciona o cursor sempre na ultima linha }
op:=readkey; { Ler uma tecla }
if op = #72 then { Se a tecla for #72 (cima) decrementa y e a seta sobe }
begin
dec(pos,2);
if pos < 11 then { Se a posi‡Æo for menor que o valor de y da primeira op‡Æo incrementa, assim a seta nÆo se move }
inc(pos,2);
gotoxy(29,pos); writeln(seta); { Mostra a seta na posi‡Æo }
gotoxy(29,pos+2); writeln(' '); { Apaga a seta da posi‡Æo anterior }
end;
{ Idem if anterior, s¢ que ao contrario }
if op = #80 then
begin
inc(pos,2);
if pos > 17 then
dec(pos,2);
gotoxy(29,pos); writeln(seta);
gotoxy(29,pos-2); writeln(' ');
end;
until op = #13; { Finaliza a repeti‡Æo quando for teclado #13 (enter) }
{ O pos vai ser usado para saber qual a op‡Æo escolhida }
End;

{ Realiza o cadastro dos veiculos }
Procedure cad_veiculo;
var
conf : char;

begin
clr;
posicao_auto; { Chamada do procedimento da posi‡Æo automatica, a posi‡Æo ‚ guardada na variavel posi }
seek(auto_arq,posi);
read(auto_arq,auto_ca);
gotoxy(20,9); writeln ('Codigo ÍÍÍÍÍÍÍÍÍÍ: ',posi);
gotoxy(20,10); writeln ('Veiculo ÍÍÍÍÍÍÍÍÍ: ');
gotoxy(20,11); writeln ('Preco ÍÍÍÍÍÍÍÍÍÍÍ: ');
gotoxy(20,12); writeln ('Ano ÍÍÍÍÍÍÍÍÍÍÍÍÍ: ');
gotoxy(20,13); writeln ('Completo (S/N) ÍÍ: ');
gotoxy(20,14); writeln ('Flex (S/N) ÍÍÍÍÍÍ: ');
gotoxy(20,15); writeln ('Cor ÍÍÍÍÍÍÍÍÍÍÍÍÍ: ');
gotoxy(20,16); writeln ('Seguro ÍÍÍÍÍÍÍÍÍÍ: ');
{ Essa estrutura permite acessar as variaveis do registro de forma direta }
with auto_ca do
begin
gotoxy(39,10); readln(veiculo);
gotoxy(39,11); readln(preco);
gotoxy(39,12); readln(ano);
gotoxy(39,13); readln(completo);
gotoxy(39,14); readln(flex);
gotoxy(39,15); readln(cor);
gotoxy(39,16); readln(seguro);
end;
gotoxy(20,17); write('Deseja salvar? (S/N)');
conf:=readkey;
if conf in ['S', 's'] then
begin
auto_ca.espaco:=false;
seek(auto_arq, posi);
write(auto_arq, auto_ca); { Grava todas as informa‡äes lidas }
clr;
gotoxy(27,13); writeln('Cadastro realizado com sucesso.');
delay(1000);
end;
end;

{ Idem procedure anterior }
Procedure cad_cliente;
var
conf : char;

begin
clr;
posicao_cliente;
seek(cliente_arq,posi);
read(cliente_arq,cliente_ca);
gotoxy(20,9); writeln ('C¢digo ÍÍÍÍÍÍÍÍÍÍÍÍÍ: ',posi);
gotoxy(20,10); writeln ('Nome ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ: ');
gotoxy(20,11); writeln ('CPF ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ: ');
gotoxy(20,12); writeln ('Endere‡o ÍÍÍÍÍÍÍÍÍÍÍ: ');
gotoxy(20,13); writeln ('Cidade/estado ÍÍÍÍÍÍ: ');
with cliente_ca do
begin
gotoxy(42,10); readln(nome);
gotoxy(42,11); readln(cpf);
gotoxy(42,12); readln(endereco);
gotoxy(42,13); readln(cidade);
end;
gotoxy(20,14); write('Deseja salvar? (S/N)');
conf:=readkey;
if conf in ['S', 's'] then
begin
cliente_ca.espaco:=false;
seek(cliente_arq, posi);
write(cliente_arq, cliente_ca);
clr;
gotoxy(27,13); writeln('Cadastro realizado com sucesso.');
delay(1000);
end;
end;

{ Idem procedure anterior }
Procedure add_vendedor;
var
conf : char;

begin
clr;
posicao_vendedor;
gotoxy(28,8); writeln('Adcionar novo vendedor.');
gotoxy(20,12); writeln('Codigo : ',posi);
gotoxy(20,13); write('Nome : ');
readln(nome_loja.vendedor);
gotoxy(20,14); write('Deseja salvar? (S/N)');
conf:=readkey;
if conf in ['S', 's'] then
begin
nome_loja.espaco:=false;
seek(nome_loja_arq, posi);
write(nome_loja_arq, nome_loja);
clr;
gotoxy(27,13); writeln('Vendedor cadastrado com sucesso.');
delay(1000);
end;
end;

{ Procedimento que exibe as op‡äes de cadastro }
Procedure cadastros;
var
op:char;
begin
clr;
gotoxy(28,10); writeln('[1] Cadastro de ve¡culos');
gotoxy(28,11); writeln('[2] Cadastro de cliente');
gotoxy(28,12); writeln('[3] Adcionar vendedor');
gotoxy(28,13); write('[4] Voltar');
op:=readkey;
{ Use o case para chamar os procedimentos de acordo com a op‡Æo escolhida }
case op of
'1' : cad_veiculo;
'2' : cad_cliente;
'3' : add_vendedor;
'4' : exit; { O exit finaliza o procedimento }
end;
end;

{ Procedimento da venda }
Procedure vender;
var
aut : rec;
clie : rec2;
vend,cod : string[40];
poa,poc,pov : word;
valor,juros,parcela : real;
op,conf : char;

begin
clr;
gotoxy(30,7); writeln('INFORME OS ITENS ABAIXO');
gotoxy(30,8); writeln('Digite [v] para voltar.');
gotoxy(11,11); writeln('Vendedor : ');
gotoxy(11,12); writeln('Cliente : ');
gotoxy(11,13); writeln('Codigo do automovel : ');
{ Primeira repeti‡Æo busca pelo nome do vendedor informado }
repeat
gotoxy(33,11); readln(vend);
if vend = 'v' then
exit;
for i:=1 to max - 1 do
begin
seek(nome_loja_arq,i);
read(nome_loja_arq,nome_loja);
if vend = nome_loja.vendedor then
begin
vend:=nome_loja.vendedor;
pov:=i;
break;
end;
if i = max - 1 then
begin
gotoxy(33,11); write('O vendedor nÆo existe!');
delay(1000);
gotoxy(33,11); writeln(' ');
end;
end;
until vend = nome_loja.vendedor;

{ Segunda repeti‡Æo busca pelo nome do cliente informado }
repeat
gotoxy(33,12); readln(clie.nome);
if clie.nome = 'v' then
exit;
for i:=1 to max - 1 do
begin
seek(cliente_arq,i);
read(cliente_arq,cliente_ca);
if clie.nome = cliente_ca.nome then
begin
clie:= cliente_ca;
poc:=i;
break;
end;
if i = max - 1 then
begin
gotoxy(33,12); write('O cliente nÆo existe!');
delay(1000);
gotoxy(33,12); write(' ');
end;
end;
until clie.nome = cliente_ca.nome;

{ Terceira repeti‡Æo busca pelo codigo do veiculo informado }
repeat
gotoxy(33,13); readln(cod);
if cod = 'v' then
exit
else
val(cod,poc,poc);
if (poc > 0) and (poc < max) then
begin
seek(auto_arq,poc);
read(auto_arq,auto_ca);
if auto_ca.espaco = true then
begin
gotoxy(33,13); write('Espa‡o vazio.');
delay(1000);
gotoxy(33,13); write(' ');
end
else
begin
aut:=auto_ca;
break;
end;
end
else
begin
gotoxy(33,13); write('Codigo invalido.');
delay(1000);
gotoxy(33,13); write(' ');
end;
until false;

{ Quarta repeti‡Æo exibe os dados do cliente e do veiculo e mostra um tipo de pagamento }
repeat
clr;
gotoxy(35,4); writeln('Vendedor: ',vend);
gotoxy(6,5); writeln ('Veiculo');
with aut do
begin
gotoxy(6,7); writeln ('Codigo ÍÍÍÍ: ',poc);
gotoxy(6,8); writeln ('Veiculo ÍÍÍ: ',veiculo);
gotoxy(6,9); writeln ('Preco ÍÍÍÍÍ: ',preco:0:2);
gotoxy(6,10); writeln ('Ano ÍÍÍÍÍÍÍ: ',ano);
gotoxy(6,11); writeln ('Completo ÍÍ: ',completo);
gotoxy(6,12); writeln ('Flex ÍÍÍÍÍ: ',flex);
gotoxy(6,13); writeln ('Cor ÍÍÍÍÍÍÍ: ',cor);
gotoxy(6,14); writeln ('Seguro ÍÍÍÍ: ',seguro);
end;
gotoxy(6,17); writeln ('Cliente');
with clie do
begin
gotoxy(6,19); writeln ('C¢digo ÍÍÍÍ: ',poc);
gotoxy(6,20); writeln ('Nome ÍÍÍÍÍÍ: ',nome);
gotoxy(6,21); writeln ('CPF ÍÍÍÍÍÍÍ: ',cpf);
gotoxy(6,22); writeln ('Endere‡o ÍÍ: ',endereco);
gotoxy(6,23); writeln ('Cidade-UF Í: ',cidade);
end;
gotoxy(42,6); writeln('Tipo de pagamento');
gotoxy(44,7); writeln('[1] Avista');
gotoxy(44,8); writeln('[2] Financiado');
gotoxy(44,9); write('[3] Canselar venda');

op:=readkey;
case op of
'1' : Begin
gotoxy(40,10); write('Valor a pagar : R$ ',aut.preco:0:2);
gotoxy(40,11); write('Valor pago : R$ ');
repeat
gotoxy(59,11); readln(valor);
if valor < aut.preco then
begin
gotoxy(59,11); write('Minimo R$ ',aut.preco:0:2);
delay(1500);
gotoxy(59,11); write(' ');
end;
until valor >= aut.preco;
gotoxy(40,12); writeln('Confirma a venda? (S/N)');
conf:=readkey;
if conf in ['S', 's'] then
begin
gotoxy(40,12); write('Troco : R$ ',valor-aut.preco:0:2); delay(50);
gotoxy(40,14); write('Obrigado por comprar em nossa loja.'); delay(50);
gotoxy(49,15); write('Volte sempre!'); delay(50);
gotoxy(40,17); write('Pressione um tecla para continuar...');
readkey;
exit;
end;
end;
'2' : Begin;
gotoxy(40,10); write('Valor a pagar : R$',aut.preco:0:2);
gotoxy(40,11); write('Banco financiador : ');
gotoxy(40,12); write('Taxa de juros : %');
gotoxy(40,13); write('Parcelas : x');
gotoxy(60,11); readln;
gotoxy(62,12); readln(juros);
gotoxy(62,13); readln(parcela);
parcela:=aut.preco/parcela;
juros:=(juros*parcela)/100;
gotoxy(40,15); writeln('Valor da parcela: R$ ',parcela+juros:0:2);
gotoxy(40,16); writeln('Confirma a venda? (S/N)');
conf:=readkey;
if conf in ['S', 's'] then
begin
gotoxy(40,17); write('Obrigado por comprar em nossa loja.'); delay(50);
gotoxy(49,18); write('Volte sempre!'); delay(50);
gotoxy(40,20); write('Pressione um tecla para continuar...');
readkey;
exit;
end;
end;
'3' : exit;
end;
until false;
End;


{ Bloco principal }
Begin
Textbackground(blue);
ClrScr;

Assign(nome_loja_arq,'config'); { Associa o nome do arquivo ao manipulador}
{$I-} reset(nome_loja_arq); {$I+} { O reset deve ser usado apenas uma vez para abrir o arquivo
caso ele exista, se nÆo o {$I-} { dezabili os erro e armazena o c¢digo do erro na variavel global do pascal
chamada IOresult e o {$I+} { habilita novamente os erros. }
if IOresult <> 0 then { Se IOresut for diferente de 0 ‚ porque deu erro ao abrir o arquivo ou ele ainda nÆo existe, entÆo usamos o rewrite }
Begin
textcolor(14);
{ O programa entende que ‚ a primeira vez que executa o programa pois o arquivo com o nome da loja nÆo existe }
gotoxy(15,11); writeln('Essa ‚ a primeira vez que vocˆ executa o programa.');
gotoxy(15,12); writeln('Por favor informe o nome da loja: ');
textcolor(red);
gotoxy(15,13); writeln('OBS: Vocˆ poderar mudar o nome posteriormente.');
rewrite(nome_loja_arq); { Cria o arquivo }
{ Ele pediu o nome da loja e vai gravar no gegistro 0 }
textcolor(white); gotoxy(49,12); readln(nome_loja.nome);
{ Note que eu nÆo usei o seek, ‚ porque a primeira vez que grava o ponteiro est* no gegistro 0 }
write(nome_loja_arq, nome_loja);
nome_loja.espaco:=true;
seek(nome_loja_arq,1);
{ Agora cria-se os outros gegistros at‚ max -1 para o nome dos vendedores }
for i:=1 to max-1 do
write(nome_loja_arq, nome_loja);
ClrScr;
textcolor(14);
gotoxy(9,12); writeln('a partir de agora o programa est* reservado para, ',nome_loja.nome,'.');
gotoxy(9,13); write('Pressione qualquer tecla para continuar... ');
readkey;
end;

{ A mesma coisa para o arquivo dos clientes }
Assign(cliente_arq,'client.cad');
{$I-} reset(cliente_arq); {$I+}
if IOresult <> 0 then
begin
rewrite(cliente_arq);
cliente_ca.espaco:=true;
for i := 1 to max do
write(cliente_arq, cliente_ca);
end;

{ A mesma coisa para o arquivo dos carros }
Assign(auto_arq,'auto.cad');
{$I-} reset(auto_arq); {$I+}
if IOresult <> 0 then
begin
rewrite(auto_arq);
auto_ca.espaco:=true;
for i := 1 to max do
write(auto_arq, auto_ca);
end;

ClrScr;
{ Exibe o nome da loja antes de iniciar o programa }
Textcolor(14);
seek(nome_loja_arq,0);
read(nome_loja_arq, nome_loja);
{ Importante! esse ‚ um calculo que eu fiz para posicionar o nome no centro da tela }
alinha:=(40-(length(nome_loja.nome) div 2));
gotoxy(30,12); writeln('Sistema de Controle.');
gotoxy(alinha,13); writeln(nome_loja.nome);
Delay(1000);

{ Interface do menu }
{ Desenha grande um quadro na tela }
ClrScr;
for i:=1 to 79 do
begin
if (i = 1) then
begin
gotoxy(i,1); write ('É'); { Esses ('É'), ('Í'), ('»'), ('º') são linhas e curvas salve o texto como .pas e verá. }
gotoxy(i,25); write ('È');
end
else
begin
gotoxy(i,1); write ('Í');
gotoxy(i,25); write ('Í');
end;
if (i = 79) then
begin
gotoxy(i,1); write ('»');
gotoxy(i,25); write ('¼',#8);
end;
end;
for i:=2 to 24 do
begin
gotoxy(1,i); writeln('º');
gotoxy(79,i); writeln('º');
end;

Repeat
{ Mostra no cabe‡alho o nome da loja centralizado }
clr;
for i:=1 to 78 do
begin
if i = 1 then
begin
gotoxy(i,1); write ('É');
end
else
begin
gotoxy(i,1); writeln('Í');
end;
end;
seek(nome_loja_arq,0);
read(nome_loja_arq, nome_loja);
alinha:=(40-(length(nome_loja.nome) div 2));
gotoxy(alinha,1); writeln(' ',nome_loja.nome,' ');

{ Chama o procedimento de sele‡Æo com a seta }
selec;
{ O procedimento retorna o (pos) com a linha da op‡Æo ecolhida }
case pos of
11 : cadastros;
13 : vender;
15 : novo_nome_loja;
17 : exit;
end;
until false;
{ Em fim você pode agora fechar todos os arquivos }
Close(nome_loja_arq);
Close(cliente_arq);
Close(auto_arq);
End.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Curso de Hacker Ético

LANÇAMENTO!

CLIQUE AQUI E CONFIRA!

* Este curso não é ministrado pela equipe do Clube do Hardware.