[ Foro de Pascal ]

ocultar contraseña, me toma la primera siempre incorrecta

14-Jul-2021 23:55
Invitado (meli)
0 Respuestas

tengo un procedure, de lectura de contraseña, que sirve para dos menús. cuando corro el programa me tira mal (siempre, a pesar de ser la clave correcta) el primer intento, no entiendo donde estaría el error. Agradecería si alguien me ayuda...
(en el if true, que asigna la clave de empresa, le agregue la asignación y en el falso, está hecho como lo hice al principio...)


Procedure LECTURACONTRA (OPC:integer);
var
   ch:char;
   password, CLAVE: string;
   cont:integer;

begin
   ClrScr;
   password:='0';
   cont:= 0;
   if (OPC=1) then
   begin
   CLAVE:='EMPRESA123';
   repeat
   write('Ingrese la CLAVE de ACCESO EMPRESA: ');
   ch:= readkey ;
   while (ch<>#13) do
   begin
   password:=password+ch;
   write('*');
   ch:=readkey;
   end;
   if password = CLAVE then
   begin
   writeln('ACCESO CORRECTO');
   Delay (1100);
   ClrScr ;
   MENUEMPRESA;
   end
   else
   begin
   cont:=cont+1;
   writeln('ACCESO DENEGADO');
   writeln('INTENTO NUM: ',cont);
   password:='';
   Delay (1100);
   ClrScr ;
   end
   until (password='EMPRESA123') or (cont=3)
   end;
   if (OPC=2) then
   REPEAT
   write('Ingrese la CLAVE de ACCESO CLIENTE: ');
   ch:=readkey;
   while (ch<>#13) do
   begin
   password:=password+ch;
   write('*');
   ch:=readkey;
   end;
   if password = 'CLIENTE123' then
   begin
   writeln('ACCESO CORRECTO');
   Delay (1200);
   ClrScr ;
   MENUCLIENTE;
   OPC:=0;
   end
   else
   begin
   cont:=cont+1;
   writeln('ACCESO DENEGADO');
   writeln('INTENTO NUM: ',cont);
   password:='';
   Delay (1200);
   ClrScr ;
   end
   until (password='CLIENTE123') or (cont=3);
   end;




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)