Viktor1703
AutoIT Гуру
- Сообщения
- 1,535
- Репутация
- 413
Прилетело в голову написать функцию для генерации случайного имени или ключа, не знаю почему, но я её написал, понимаю что на форуме полно примеров всяких генераций, но всё равно пишу... думаю может кому пригодится.
В функции имеется возможность выбора, какие данные должны вернутся из функции:
1. Только заглавные буквы.
2. Только строчные буквы.
3. Только цифры.
4. Только заглавные буквы и цифры.
5. Только строчные буквы и цифры.
6. Только заглавные и строчные буквы.
7. Всё вместе (Default).
В функции имеется возможность выбора, какие данные должны вернутся из функции:
1. Только заглавные буквы.
2. Только строчные буквы.
3. Только цифры.
4. Только заглавные буквы и цифры.
5. Только строчные буквы и цифры.
6. Только заглавные и строчные буквы.
7. Всё вместе (Default).
Код:
MsgBox(0, '', Generate(256)) ;~ Заглавные + строчные + цифры (Default)
MsgBox(0, '', Generate(256, 'Upper;Lower')) ;~ Заглавные + строчные
MsgBox(0, '', Generate(256, 'Upper;Digit')) ;~ Заглавные + цифры
MsgBox(0, '', Generate(256, 'Lower;Digit')) ;~ Строчные + цифры
MsgBox(0, '', Generate(256, 'Upper')) ;~ Заглавные
MsgBox(0, '', Generate(256, 'Lower')) ;~ Строчные
MsgBox(0, '', Generate(256, 'Digit')) ;~ Цифры
; #Функция# ===========================================================================================
; Имя ...........: Generate
; Описание ......: Генерация случайных символов.
; Синтаксис .....: Generate($iLenght, $sParam)
; Параметры .....: $iLenght - Определяет колличество возвращаемых данных.
; $sParam - Определяет какие символы должны входить в возвращаемые данные.
; |Upper - Заглавние буквы.
; |Lower - Строчные буквы.
; |Digit - Цифры.
;======================================================================================================
Func Generate($iLenght, $sParam = 'Upper;Lower;Digit')
Local $aRet, $aBase, $aInit, $sUpper, $sLower, $sDigit, $sBase
$Upper = 'A;B;C;D;E;F;G;H;I;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;'
$Lower = 'a;b;c;d;e;f;g;h;i;k;l;m;n;o;p;q;r;s;t;u;v;w;x;y;z;'
$Digit = '1;2;3;4;5;6;7;8;9;0;'
$aInit = StringSplit($sParam, ';')
For $i = 1 To $aInit[0]
$aBase &= Eval($aInit[$i])
Next
$sBase = StringSplit($aBase, ';')
For $i = 1 To $iLenght
$aRet &= $sBase[Random(1, $sBase[0], 1)]
Next
Return $aRet
EndFunc