Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Реализация цикла от и до - Delphi/RAD XE3+


Автор: Campus2000 22.5.2018, 18:29
Ребята, подскажите цикл генерации случайных паролей. К примеру указываю от 2 и до 10 и генерируется рандомное число паролей от 2 до 10 символов - в порядке убывания (от большего значения до меньшего).

Пример:
Код

o3!7nl@zhw
o2dj511jiw
o6@@!
p8b7
1z8
!z


К примеру как в данном коде задать:
Код

const len=8; {длина пароля}
        x=100; {кол-во создаваемых}
var
  Dict, Pass : string;
  i,j: integer;
  f1 : textfile;
.......................................................
 Randomize; 
 
  for i:=0 to x-1 do
  begin
  Pass:='';
    for j:=0 to len-1 do Pass:=Pass+Dict[Random(75)+1]; {генерируем}
    writeln(f1, Pass); 
  end;

Автор: Snowy 23.5.2018, 13:49
Код

function compare(List: TStringList; Index1, Index2: Integer): Integer;
var
  s1, s2: String;
begin
  s1 := List[Index1]; s2 := List[Index2];
  if Length(s1) = Length(s2) then
     result := AnsiCompareStr(s1, s2)
  else result := Length(s2) - Length(s1);
end;

procedure generatePasswords(minLen: integer; maxLen: integer; count: integer);
// символы для генерации пароля
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-=!@#$%^&*()_+';
var
  sl: TStringList;
  i, j: integer;
  s:    string;
  len:  integer;
begin
  Randomize;
  sl := TStringList.Create;
  try
    for i := 1 to count do
    begin
      len := Random(maxLen - minLen) + minLen;
      SetLength(s, len);
      for j := 1 to len do
        s[j] := chars[Random(Length(chars))+1];
      sl.add(s);
    end;
    sl.CustomSort(compare);
    //Form1.Memo1.Lines.AddStrings(sl);
    sl.SaveToFile('D:\1.txt');
  finally
    sl.Free;
  end;
end;

// test
procedure TForm1.Button1Click(Sender: TObject);
begin
  generatePasswords(2, 10, 100);
end;

Автор: Campus2000 23.5.2018, 18:25
Snowy, Спасибо за помощь! Все работает отлично!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)