Jump to content
Sign in to follow this  
geniuslim

Dúvida Login em Pascal...

Recommended Posts

geniuslim

Boas pessoal, é assim, estou com um pequeno problema neste Projecto que tenho vindo

a desenvolver na parte do login, é assim, trata-se de uma agência de viagens que nomeadamente

terá diversas operações com ficheiros dentro dela, mas no entanto começei por optar a fazer

um sistema de logins, ou seja cada vendedor entra com a sua pass para fazer a gestão da agencia

(vender pacotes, adicionar clientes, alterar, montar novos pacotes, etc, etc, mas a questão é

que nessa parte do login, o programa mesmo quando eu crio um novo usuario e tento

fazer o login ele não assume que o usuario ja esta registado, manda a mensagem a dizer que

ele não se encontra registado.... precisava de uma ajuda nesse aspecto, pra poder dar inicio

ao tratamento do restante informação, entretanto se alguém tiver uma dica de como fazer um

determinado procedimento, ou alguma sugestão de como seguir o programa, agradadeço que

as coloquem, seria muito bom, desde ja segue o codigo:

Program Pzim ;
uses crt;

type agente= record
          user: string[16];
          pass: string[10];
          nome: string[20];
          nasc: string[30];
          venc: real;
          morada: string[30];

       end;






Var
op: integer;  f_ag: file of agente; tmp_ag: file of agente;
reg_ag, reg2, regi_ag: agente;




Procedure init;
(*var*)

   Begin
      Assign(f_ag, 'Z:\Prolp\user.bin');
      Assign(tmp_ag, 'Z:\Prolp\temp_user');
      (*Assign( *)
         {$I-}
           Reset(f_ag);
         {$I+}
        If IOResult <> 0 then Rewrite(f_ag);
                   close(f_ag);



    End;


Procedure nuser;
Var i,j: integer;
password, nasc: string[20];
usuario,nome,morada: char;
venc:real;
oc: integer;
   Begin
(* Repeat*)
    clrscr;
textcolor(lightred);
 for i:=25 to 61 do
   begin
   gotoxy(i,5);
     write(#178);
     gotoxy(i,19);
     write(#178);
      for j:=6 to 19 do
	  begin
	    gotoxy(25,j);
       write(#178);
      gotoxy(61,j);
     write(#178);
    end;
   end;

     gotoxy(27,7);
     writeln('ESCOLHA UM NOME DE USUARIO:');
     gotoxy(27,13);
     writeln('ESCOLHA UMA PASSWORD: ');
     gotoxy(27,11);
     writeln('INSIRA O SEU NOME UM NOME:');
     gotoxy(27,9);
     writeln('INSIRA A SUA DATA DE NASCIMENTO:');
     gotoxy(27,15);
     writeln('INSIRA O VALOR DO SEU VENCIMENTO:');
     gotoxy(27,17);
     writeln('INSIRA A SUA MORADA:');
     (* gotoxy(27,3);*)

        textcolor(14);
        gotoxy(27,8);
        readln(reg2.nome);
        gotoxy(27,10);
        readln(reg2.pass);
        gotoxy(27,12);
readln(reg2.user);
gotoxy(27,14);
        readln(reg2.nasc);
        gotoxy(27,16);
        readln(reg2.venc);
        gotoxy(27,18);
        readln(reg2.morada);
        Reset(f_ag);
        Rewrite(tmp_ag);
         While NOT EOF(f_ag) do
          Begin
            Read(f_ag, reg_ag);
            Write(tmp_ag, reg_ag);
          End;
           write(tmp_ag, reg2);
           reset(tmp_ag);
           rewrite(f_ag);

               While NOT EOF(tmp_ag) do
                 Begin
                   write(tmp_ag, reg_ag);
                   write(f_ag, reg_ag);
                 End;
                close(tmp_ag);
                close(f_ag);



              (* writeln(' AGORA PRIMA 1 PARA EFECTUAR  LOGIN!');
               readln(oc);
      Until (oc = !);
                  *)

  end;



    Procedure Menu;
         Begin
          writeln('OLA MUNDO');
         End;


       Procedure Saida;
        Begin
           clrscr;
           writeln(' MUITO OBRIGADO POR UTILIZAR NOSSOS SERVICOS, ATE A PROXIMA!');
           readkey;
        End;

Procedure plogin;
Var usuario: string[16];
i,j:integer;
password: string[10];
enc: boolean;
opc: integer;
   Begin
     clrscr;
textcolor(lightred);
 for i:=30 to 50 do
   begin
   gotoxy(i,8);
     write(#178);
     gotoxy(i,17);
     write(#178);
      for j:=8 to 17 do
	  begin
	    gotoxy(30,j);
       write(#178);
      gotoxy(50,j);
     write(#178);
    end;
   end;
   gotoxy(33,10); 
     writeln('NOME DE USUARIO:');
     gotoxy(33,13);
     writeln('PASSWORD:');
     textcolor(14);
        gotoxy(33,11);
readln(usuario);
gotoxy(33,14);
readln(password);
        enc:=false;
        Begin
         Reset(f_ag);
           While NOT EOF(f_ag) and not enc  do
            Begin
             read(f_ag, regi_ag);
             If (usuario = regi_ag.user) AND (password = regi_ag.pass) then
               enc:=true;
            end;
            close(f_ag);
           If enc then
                  Menu
           else
              Begin
               writeln(' NAO SE ENCONTRA CADASTRADO, PRIMA 1 PARA CADASTRAR OU 2 PARA TENTAR OUTRA VEZ!');
               readln(opc);
                  Case opc of
                    1:nuser;
                    2:plogin;
                    3:saida;

                  End;

              End;
           End;
End;



  Begin
Repeat
  init;
  textbackground(1);
  textcolor(46); clrscr;
  gotoxy(4,14); write('      GGGGGGGGGGGGGG       TTTTTT OOOO U  UU  RRRR                            ');
  gotoxy(4,15); write('     GGGGGGGGGGGGGGG         TT   O  O U  UU  RR  R                           ');
  gotoxy(4,16); write('     GGG                     TT   OOOO UUUUU  RRRR                            ');
  gotoxy(4,17); write('     GGG                                      RR  RR                          ');
  gotoxy(4,18); write('     GGG                 LL                                AAA    LL          ');
  gotoxy(4,19); write('     GGG   GGGGGGGGGGGG  LLL       OOOOOOOO   BBBBBB      AA AA   LLL         ');
  gotoxy(4,20); write('     GGG      GGGGGGGG   LL       00      0O  BB   BB     AA AA   LL          ');
  gotoxy(4,21); write('     GGG         GGG     LL       00      0O  BB   BB     AA AA   LL          ');
  gotoxy(4,22); write('     GGG         GGG     LL       00      0O  BBBBBBB     AA AA   LL          ');
  gotoxy(4,23); write('     GGG         GGG     LL       00      00  BB    BB    AAAAA   LL          ');
  gotoxy(4,24); write('     GGGGGGGGGGGGGGG     LLLLLLLL 00      0O  BB    BB   AA   AA  LLLLLLLL    ');
  gotoxy(4,25); write('     GGGGGGGGGGGGGG      LLLLLLLL  OOOOOOOO   BBBBBBB   AA     AA LLLLLLLL    ');

  textcolor(10);gotoxy(30,27); writeln('A SUA VIAGEM COMECA AQUI!');
  gotoxy(11,29);writeln('PRESSIONE 1 PARA FAZER LOGIN OU PRESSIONE 2 PARA CADASTRAR-SE');
  gotoxy(40,30);readln(op);


   Case op of


    1: Begin
        plogin;
       End;

    2: Begin
        nuser;
       End;

    3: Begin
        saida;
       End;



   End;
Until (op<>1) and (op<>2) and (op<>3);

End.

No entanto agradeço o tempo perdido com o meu problema e agradeço

àqueles que conseguirem me ajudar, abraço!

Share this post


Link to post
Share on other sites
thoga31

um programa desta natureza não é fácil de se ler sem uns comentários... eu pessoalmente não tenho tempo para analisar o código e descobrir "pelo milagre dos 5 minutos" onde estão as partes que dão o erro, o que está mal, etc...

E colocar a ajuda de forma mais clara ajudaria.

E colorir o código também...

Cumpz.


Knowledge is free!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.