Pascal/Turbo Pascal - Problema con password al pulsar la tecla BackSpace

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 12 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Problema con password al pulsar la tecla BackSpace

Publicado por Guillermo (2 intervenciones) el 21/07/2019 21:37:06
Buenas, el problema es que cuando ingreso la contraseña, al apretar la tecla "BackSpace" o "Borrar" Me lo marca como un carácter, y no hace su trabajo que sería "Borrar".

Me pueden ayudar? Solamente eso, les dejo el algoritmo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
program Project1;
uses Crt;
var
c : char;
s : array [1..127] of char;
i : integer;
 
begin
c := #0;
 
for i := 1 to 127 do
s[i] := #0;
clrscr;
Write('Ingrese password: ');
i := 1;
while (c <> #13) and (i <= 127) do
begin
c := ReadKey;
if c <> #13 then
begin
Write('*');
s[i] := c
end;
i := i + 1
end;
 
WriteLn;
Write('Usted ingres¢: ');
i := 1;
while (s[i] <> #0) and (i <= 127) do
begin
Write(s[i]);
i := i + 1
end;
 
ReadKey
end.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Hector
Val: 10
Ha mantenido su posición en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Problema con password al pulsar la tecla BackSpace

Publicado por Hector (4 intervenciones) el 23/07/2019 21:37:25
Buen dia, prueba esto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Uses Crt;
Var
 Tecla:Char;Clave:String;Posicion:Integer;
Begin
  ClrScr;
  Posicion:=22;
  Repeat
     GotoXY(1,1);Write('Ingrese el Password: ');
     GotoXY(Posicion,1);Tecla:=ReadKey;
     if Tecla<>#8 Then
        Begin
          GotoXY(Posicion,1);Write('*');
          Clave:=Clave + Tecla;
          Posicion:=Posicion+1;
        End
      Else
        Begin
          if Clave<>'' Then
            Begin
              Posicion:=Posicion-1;
              GotoXY(Posicion,1);Write(' ');
              Delete(Clave,Length(Clave),1)
            End;
        End;
  until Tecla=#13;
 WriteLn;
 Write('Usted ingreso: ',Clave);
 Tecla:=ReadKey
End.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar