Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet megoldani (basic...

Hogyan lehet megoldani (basic es vagy pascal) a billentyuzeten leutott karakterek ne, hanem csillagok jelenjenek meg?

Figyelt kérdés
Pl jelszo beutesekor, a karakterek helyett csillagok legyenek. Mindekt nyelven erdekelne. Borland(Turbo) Pascal, meg a dos 6.22 ben volt basic is ha jol emlekszem Qbasic

2017. aug. 9. 14:25
 1/6 tabaki ***** válasza:
100%
Pascalban: ReadKey fogadhatja a leütést, eltárolod, de a képernyőre csillagot írsz helyette.
2017. aug. 9. 14:35
Hasznos számodra ez a válasz?
 2/6 tabaki ***** válasza:
100%

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.

2017. aug. 9. 14:41
Hasznos számodra ez a válasz?
 3/6 tabaki ***** válasza:
100%

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.

2017. aug. 9. 14:52
Hasznos számodra ez a válasz?
 4/6 tabaki ***** válasza:
100%

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

print "A megadott jelszó: "; jelszo$

2017. aug. 9. 15:35
Hasznos számodra ez a válasz?
 5/6 SimkoL ***** válasza:
100%

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.

2017. aug. 9. 19:51
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
Koszonom mindenkinek :)
2017. aug. 10. 00:16

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!