|
QR-код
|
|
|
Категории раздела
|
|
Программирование на языке Паскаль [26]
В данной категории представлены новые функции, созданные на языке Паскаль, которые могут пригодиться при написании своих программ
|
|
Программирование на Delphi [20]
В данной категории представлены полезные подпрограммы, которые могут пригодиться при написании своих программ, а также рассматриваются примеры готовых проектов, создаваемых в среде программирования Delphi
|
|
Программирование на HTML [1]
В данной категории рассматриваются примеры готовых проектов, создаваемых на языке HTML
|
|
Мои программы [1]
Описание разработанных автором программ.
|
|
Online-программы [2]
|
|
Прочее [42]
Свободная тематика
|
|
|
Наш опрос
|
|
|
|
Статистика
|
Онлайн всего: 6 Гостей: 6 Пользователей: 0
|
|
Случайный набор символов (генератор новых слов)
function WordRandom(Len: integer; Ru, RuUp, En, EnUp, Num: boolean; Sym: TSysCharSet): string;
var s: array of AnsiChar;
n, Count: integer;
c: AnsiChar;
begin
Result:='';
Count:=0;
SetLength(s, Count);
if Ru then
begin
Count:=Count+33;
SetLength(s, Count);
for c:='а' to 'я' do
s[Count-33+Ord(c)-Ord('а')]:=c;
s[Count-1]:='ё';
end;
if RuUp then
begin
Count:=Count+33;
SetLength(s, Count);
for c:='А' to 'Я' do
s[Count-33+Ord(c)-Ord('А')]:=c;
s[Count-1]:='Ё';
end;
if En then
begin
Count:=Count+26;
SetLength(s, Count);
for c:='a' to 'z' do
s[Count-26+Ord(c)-Ord('a')]:=c;
end;
if EnUp then
begin
Count:=Count+26;
SetLength(s, Count);
for c:='A' to 'Z' do
s[Count-26+Ord(c)-Ord('A')]:=c;
end;
if Num then
begin
Count:=Count+10;
SetLength(s, Count);
for c:='0' to '9' do
s[Count-10+Ord(c)-Ord('0')]:=c;
end;
for c:=Low(AnsiChar) to High(AnsiChar) do
if (c in Sym) and not (Ru and ((c>='а') and (c<='я') or (c='ё')) or
RuUp and ((c>='А') and (c<='Я') or (c='Ё')) or
En and (c>='a') and (c<='z') or EnUp and (c>='A') and (c<='Z') or
Num and (c>='0') and (c<='9')) then
begin
Inc(Count);
SetLength(s, Count);
s[Count-1]:=c;
end;
if Count=0 then
Exit;
while Len>0 do
begin
Dec(Len);
n:=Random(Count);
Result:=Result+String(s[n]);
end;
end;
где:
Len – длина строки;
Ru – включить русские строчные буквы
('а'..'я',
'ё');
RuUp – включить русские прописные буквы
('А'..'Я',
'Ё');
En – включить английские строчные буквы
('a'..'z');
EnUp – включить английские прописные буквы
('A'..'Z');
Num – включить цифры
('0'..'9');
Sym – включить другие символы (например, знаки препинания).
Например,
WordRandom(5, true, true, true, true, true, [])
выведет случайным образом строку длиной в 5 символов (например,
'r5фSЦ'),
WordRandom(10, true, false, false, false, true, ['.', '-'])
выведет случайным образом строку длиной в 10 символов, состоящих из русских строчных
букв, цифр и двух символов (точки и тире) (например,
'е-5ёзйх.49'),
WordRandom(8, false, false, false, false, true, [])
выведет случайным образом набор из 8 цифр (например,
'68208732'),
WordRandom(16, false, false, false, false, false, ['0', '1'])
выведет случайным образом двоичную запись из 16 цифр (например,
'1011101100100111'),
WordRandom(4, false, false, false, false, true, ['A'..'F'])
выведет случайным образом шестнадцатеричное число из 4 цифр (например,
'10E7'),
WordRandom(12, false, false, false, false, false, [])
выведет пустую строку (отключены все параметры).
Примечание. В современных версиях языка Паскаль
русские буквы могут иметь другие коды из-за различия в кодировках. Эта функция работает
в Delphi 6 и 10.3 версиях. Поскольку тип TSysCharSet – это множество
AnsiChar (TSysCharSet = set of AnsiChar), поэтому вместо типа
Char выбран AnsiChar.
|
|
Категория:
Программирование на языке Паскаль
|
Добавил:
newerow1989
|
|
|
Просмотров:
1350
|
Рейтинг:
0.0/0
|
|
|
|