![>](style_images/1/nav_m.gif)
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.217.4.250] |
![]() |
|
Сообщ.
#1
,
|
|
|
Собсно нужно сделать генератор паролей по маске XXYYYYYYYYYZZZZ где X-числа Y-буквы ZZZZ постоянное число.
Хотел найти исходник, и переделать под себя, т.к. в кодинге не силен но не нашел ничего кроме рандомных генераторов. Может ктонибудь может что подсказать? |
Сообщ.
#2
,
|
|
|
ну тык переделай его под себя...
|
Сообщ.
#3
,
|
|
|
![]() ![]() program Project2; {$APPTYPE CONSOLE} uses SysUtils; const Letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; var j:Integer; function GeneratePass(nDigits, nLetters:Integer; ConstPart:String):String; var i:Integer; begin Result := ''; for i := 1 to nDigits do Result := Result + Char(ord('0') + random(10)); for i := 1 to nLetters do Result := Result + Letters[1 + random(Length(Letters))]; Result := Result + ConstPart; end; begin for j := 1 to 100 do Writeln(Generatepass(2, 9 , '1234')); readln; { TODO -oUser -cConsole Main : Insert code here } end. Годится ? |
Сообщ.
#4
,
|
|
|
WildBear
Годитьтся, Именно то, спасибо! Но простите за наглость, А нет примера не консольного? |
Сообщ.
#5
,
|
|
|
Цитата ИгорЪ @ А нет примера не консольного? а в чем сообственно проблема? Тебе ведь сама функция нужна. а вставляй ее куда хочешь... |
Сообщ.
#6
,
|
|
|
Aleksej Согласен, тогда хотябы коментарии к коду, если понадобиться изменить маску.
например на XXYXZZXXXX? |
Сообщ.
#7
,
|
|
|
А ведь это совсем другая разница
![]() ![]() ![]() program Project2; {$APPTYPE CONSOLE} uses SysUtils; const Letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; var j:Integer; // sMask - маска ,в которой // X - случайная цифра // Y - случайная буква // Z - заданная последовательность // ConstPart - та самая последовательность, которая кодируется как Z function GeneratePass(sMask:String; ConstPart:String):String; var i:Integer; begin Result := ''; for i := 1 to Length(sMask) do begin if sMask[i] = 'X' then Result := Result + Char(ord('0') + random(10)); if sMask[i] = 'Y' then Result := Result + Letters[1 + random(Length(Letters))]; if sMask[i] = 'Z' then Result := Result + ConstPart; end; end; begin for j := 1 to 100 do Writeln(Generatepass( 'XXYXZXXXX', '1234')); readln; { TODO -oUser -cConsole Main : Insert code here } end. |
Сообщ.
#8
,
|
|
|
WildBear
Биг респект! Спасибо. теперь будем думать над интерфейсом! |