Неверов Евгений Викторович

Российская общественная инициатива (РОИ)

Вашему вниманию на интернет-ресурсе РОИ размещены следующие общественные инициативы:

  1. Увеличить заработную плату учителям школы.
  2. Запретить работодателям увольнять работников, защищающих свои трудовые права в суде.

Для голосования вы должны быть авторизованы через ЕСИА.

QR-код
Меню сайта
Категории раздела
Программирование на языке Паскаль [26]
В данной категории представлены новые функции, созданные на языке Паскаль, которые могут пригодиться при написании своих программ
Программирование на Delphi [20]
В данной категории представлены полезные подпрограммы, которые могут пригодиться при написании своих программ, а также рассматриваются примеры готовых проектов, создаваемых в среде программирования Delphi
Программирование на HTML [1]
В данной категории рассматриваются примеры готовых проектов, создаваемых на языке HTML
Мои программы [1]
Описание разработанных автором программ.
Online-программы [2]
Прочее [42]
Свободная тематика
Мини-чат
200
Наш опрос
Как Вы думаете, сколько времени люди проживут на Земле?
Всего ответов: 63
Статистика

Онлайн всего: 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
Всего комментариев: 0
Имя *:
Email:
Код *:
Вход на сайт
Поиск
Друзья сайта
Заработок в Интернете
Copyright MyCorp © 2026
Версия для мобильных устройств. Яндекс.Метрика Анализ сайта Проверить мой сайт на ScamAdviser.com