Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Scrivo un carattere e lo trasformo in un asterisco.
Forum - Pascal - Scrivo un carattere e lo trasformo in un asterisco.

Avatar
Pascal-Dude (Normal User)
Newbie


Messaggi: 6
Iscritto: 22/10/2012

Segnala al moderatore
Postato alle 17:39
Giovedì, 14/03/2013
Ciao a tutti, allora vorrei fare un programma che prima di iniziare chieda la password.
Fin qui tutto ok, lo so fare un banale
Codice sorgente - presumibilmente Pascal

  1. if password='giorgio' then ...PROGRAMMA... else Exit;


Ma vorrei che quando faccio il readln della pass mi compaiano i **** invece che i caratteri in chiaro!
Codice sorgente - presumibilmente Plain Text

  1. writeln('Password?');
  2. readln(password);



Io stavo pensando a un array di char (qui sotto fatto) e a ogni carattere mettere un * (con un repeat?) ma non ci riesco quindi sono accettati tutti i modi.

Codice sorgente - presumibilmente Delphi

  1. psw: array [1..7] of char;
  2. for a:=1 to 7 do
  3. begin
  4. writeln('Carattere segreto ',a,' ?');
  5. readln(pas[a]);
  6. clrscr;
  7. end;
  8. b:=concat(pas[1],pas[2],pas[3],pas[4],pas[5],pas[6],pas[7]);
  9.  
  10. if b='giorgio' then ...PROGRAMMA... else Exit;




Riassumendo: Siete in grado di creare un programma che quando mi dice di introdurre una password non la faccia comparire in chiaro?

Ultima modifica effettuata da Pascal-Dude il 14/03/2013 alle 17:44
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 18:22
Giovedì, 14/03/2013

PM Quote
Avatar
Pascal-Dude (Normal User)
Newbie


Messaggi: 6
Iscritto: 22/10/2012

Segnala al moderatore
Postato alle 15:50
Venerdì, 15/03/2013
Geniale! Non ci avevo pensato, grazie.

EDIT: Ci sono riuscito sei un grande grazie.

Codice sorgente - presumibilmente Delphi

  1. program asterisk;
  2. uses crt;
  3. var a:integer;
  4. b:string;
  5. ch: array [1..7] of char;
  6. begin
  7.  writeln('Inserisci la password misteriosa');
  8. for a:=1 to 7 do
  9. begin
  10.    ch[a]:=ReadKey;
  11. end;
  12. b:=concat(ch[1],ch[2],ch[3],ch[4],ch[5],ch[6],ch[7]);
  13. writeln('La password misteriosa e'' ',b);
  14. readln;
  15. end.


Ultima modifica effettuata da Pascal-Dude il 15/03/2013 alle 16:08
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 19:10
Venerdì, 15/03/2013
Si può fare qualcosa di più semplice:
Codice sorgente - presumibilmente Delphi

  1. program asterisk;
  2. uses crt;
  3. var a:integer;
  4. b:string;
  5.  
  6. begin
  7.  clrScr;
  8.  write('Inserisci la password misteriosa ');
  9.  b:=''; {inizializzo b con una stringa vuota}
  10.  for a:=1 to 7 do
  11.  begin
  12.    b:=concat(b, ReadKey); {aggiungo direttamente il carattere letti in b}
  13.    write('*'); {scrivo un asterisco di conferma}
  14.  end;
  15.  writeln;
  16.  writeln('La password misteriosa e'' ',b);
  17.  readln;
  18. end.


PM Quote