Hogyan lehet megoldani (basic es vagy pascal) a billentyuzeten leutott karakterek ne, hanem csillagok jelenjenek meg?
Ezt még régen írtam egy hasonló kérdésre, most nem néztem át, hogy nincs-e benne valami vállalhatatlan:
program jelszobeolvasas;
uses crt;
var
i : byte;
jelszo : string;
c : char;
procedure beiras;
begin
jelszo := jelszo + c;
Write('*');
end;
procedure visszatorles;
begin
if jelszo > '' then
begin
Delete(jelszo, Length(jelszo), 1);
ClrScr;
Write('Jelszó: ');
for i := 1 to Length(jelszo) do Write('*');
end;
end;
begin
ClrScr;
Write('Jelszó: ');
jelszo := '';
repeat
c := ReadKey;
if c <> #8 then
begin
if c <> #13 then beiras;
end
else
visszatorles;
until c = #13;
WriteLn;
WriteLn('A beolvasott jelszó: ', jelszo);
ReadKey;
end.
Jé, a régi kérdés megvan, de úgy látszik, a kérdező elbujdosása után a programot már nem küldem be:
https://www.gyakorikerdesek.hu/szamitastechnika__programozas..
Na, ha megkésve is, de esetleg hajthat valami hasznot.
A lényeg (visszatörlés nélkül) QBasicben, ha minden igaz:
dim jelszo$
dim betu$
jelszo$ = ""
print "jelszó: ";
do
betu$ = inkey$
if betu$ > chr$(13) then
jelszo$ = jelszo$ + betu$
print "*";
end if
loop until betu$ = chr$(13)
print "A megadott jelszó: "; jelszo$
program Project1;
uses Crt;
function jelszo( x, y : Byte; jelszo_char : Char ): String;
var input_char, ures : Char;
maszk : String[255];
begin
jelszo := '';
repeat
GotoXY(x, y);
// Sor törlése
DelLine;
// A 'maszk' feltöltése a 'jelszo_char' karakterrel
FillChar(maszk, Length(jelszo) + 1, jelszo_char);
// A 'maszk' hosszának beállítása
SetLength(maszk, Length(jelszo));
Write('Kerem a jelszot: ', maszk);
input_char := ReadKey;
// Vezérlő bill. 'benyelése'
if input_char = #0 then ures := ReadKey;
// Bevihető karakterek korlátozása
case input_char of
'A'..'Z', 'a'..'z', '0'..'9', '_' : jelszo := jelszo + input_char;
#8 : Delete(jelszo, Length(jelszo), 1);
end;
until input_char = #13;
end;
begin
ClrScr;
Writeln(#10#13, jelszo(1, 5, '#'));
ReadLn;
end.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!