Код | 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;
|
|