Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

skrivena slova? PASCAL

[es] :: Pascal / Delphi / Kylix :: skrivena slova? PASCAL

[ Pregleda: 1854 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

LSDCracker
Obrisan Profil

Član broj: 161168
Poruke: 62



Profil

icon skrivena slova? PASCAL06.01.2009. u 05:01 - pre 186 meseci
Code:

procedure login_input(var name,pass:string);
begin
 writeln('LOGIN');
 new;
 write('Korisnicko ime : ');
 readln(name);
 write('Lozinka : ');
 readln(pass);
end;


Kako da u redu 'Lozinka : ' ono sto korisnik unese bude zasticeno...
npr ako on zeli da unese magarac da na ekranu bude ispisano samo *******.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: skrivena slova? PASCAL06.01.2009. u 13:10 - pre 186 meseci
> Kako da u redu 'Lozinka : ' ono sto korisnik unese bude zasticeno...
> npr ako on zeli da unese magarac da na ekranu bude ispisano samo *******.

To je u konzoli malo teže, u nekoliko rešenja postoji:
1) moraš da presretneš slovo pre upisa na ekran i sam upišeš *. Ako je program samo za Windows onda možeš koristiti WinApi consolne funkcije, recimo ReadConsoleInput, WriteConsole itd. Svakako proveri i da li FPC ima neke nezavisne funkcije za ovo (dakle na nižem nivou od Read i ReadLn).
2) da posle ispisa se vratiš unazad i zameniš ispisano slovo sa *. Pogledaj u FreePascal compiler ima li funkcija za pozicioniranje na tačno određenu poziciju.
3) da u potpunosti sakriješ ispis (neće biti ni slova ni *). To možeš postići pomoću SetConsoleMode WinApi funkcije.
 
Odgovor na temu

LSDCracker
Obrisan Profil

Član broj: 161168
Poruke: 62



Profil

icon Re: skrivena slova? PASCAL06.01.2009. u 14:54 - pre 186 meseci
uh to nisam jos radio.
Znas mozda kako bih mogao to da implementiram u ovu proceduru?

Meni je problem sto ja ovo sve moram konsolno da odradim, lako bi ja to da je OO.

Mislim sad je problem u tome kako ja da vatam slova i da vracam * i kako to da smestim posle u jedan string.
Kad ce mi se unos slova zavrsiti i slicne stvari.

Mada ne bi bila losa stvar i da mi objasnis kako da bude bez icega, samo da se unose slova a da na ekranu nista ne ispisuje, to je dosta profesionalno.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: skrivena slova? PASCAL06.01.2009. u 15:10 - pre 186 meseci
> Mislim sad je problem u tome kako ja da vatam slova i da vracam * i kako to da smestim posle u jedan string.
> Kad ce mi se unos slova zavrsiti i slicne stvari.

Napisao sam ti koje funkcije treba da pogledaš, dakle MSDN u šake i proučavaj. S tim što ti je moj savet da prvo pogledaš ima li nešto slično u FPCu, a kako on dolazi uz source možeš i tamo videti.

> Mada ne bi bila losa stvar i da mi objasnis kako da bude bez icega, samo da se unose slova a da na ekranu nista ne ispisuje, to je dosta profesionalno.

Evo kratak primer, za ostalo MSDN i sam istraži.

Code:

uses
  Windows, SysUtils;

var
  StdInputHandle: THandle;
begin
  StdInputHandle := GetStdHandle(STD_INPUT_HANDLE);
  SetConsoleMode(StdInputHandle, ENABLE_MOUSE_INPUT or ENABLE_PROCESSED_INPUT or ENABLE_LINE_INPUT);

  Readln;
end.

 
Odgovor na temu

LSDCracker
Obrisan Profil

Član broj: 161168
Poruke: 62



Profil

icon Re: skrivena slova? PASCAL06.01.2009. u 16:15 - pre 186 meseci
Nasao sam mnogo sladje resenje :D

Code:

while c<>chr(13) do begin
  if KeyPressed then
   begin
    c:=ReadKey();
    pass:=pass+c;
    write('*');
   end;
  end;


Samo sto jos treba da nadjem resenje za backspace jer ga prihvata kao unos na tastaturi i ispisuje zvezdicu.

Hvala u svakom slucaju!
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: skrivena slova? PASCAL

[ Pregleda: 1854 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.