1

Тема: AHK: Буквенный Random

Суть в следующем:
В AHK ест замечательная команда как Random, которая генерирует случайное число. Но проблема в том, что она генерирует ТОЛЬКО число. Мне же нужен random буквенный. Ничего лучше сопоставления сгенерированного числа и буквы мне в голову не пришло:

SC01e:: 
random, r, 1, 32
if r > 0
{
 if r < 9
 {
  if r = 1
  {
   send а
   exit
  }
  if r = 2
  {
   send б
   exit
  }
  if r = 3
  {
   send в
   exit
  }
  if r = 4
  {
   send г
   exit
  }
  if r = 5
  {
   send д
   exit
  }
  if r = 6
  {
   send е
   exit
  }
  if r = 7
  {
   send ж
   exit
  }
  if r = 8
  {
   send з
   exit
  }
 }
}
if r > 8
{
 if r < 17
 {
  if r = 9
  {
   send и
   exit
  }
  if r = 10
  {
   send й
   exit
  }
  if r = 11
  {
   send к
   exit
  }
  if r = 12
  {
   send л
   exit
  }
  if r = 13
  {
   send м
   exit
  }
  if r = 14
  {
   send н
   exit
  }
  if r = 15
  {
   send о
   exit
  }
  if r = 16
  {
   send п
   exit
  }
 }
}
if r > 16
{
 if r < 26
 {
  if r = 17
  {
   send р
   exit
  }
  if r = 18
  {
   send с
   exit
  }
  if r = 19
  {
   send т
  exit
  }
  if r = 20
  {
   send у
   exit
  }
  if r = 21
  {
   send ф
   exit
  }
  if r = 22
  { 
   send х
   exit
  }
  if r = 23
  {
   send ц
   exit
  }
  if r = 24
  {
   send ч
   exit
  }
  if r = 25
  {
   send ш
   exit
  }
 }
}
if r > 25
{
 if r < 33
 { 
  if r = 26
  {
   send щ
   exit
  }
  if r = 27
  {
   send ь
   exit
  }
  if r = 28
  {
   send ы
   exit
  }
  if r = 29
  {
   send ъ
   exit
  }
  if r = 30
  {
   send э
   exit
  }
  if r = 31
  {
   send ю
   exit
  }
  if r = 32
  {
   send я
   exit
  }
 }
}
return

Но сие составляет аж 187 строк. Подскажите пожалуйста менее громоздкий и более быстрый метод генерации случайного символа.

2

Re: AHK: Буквенный Random

Букву ё пропустили.

3

Re: AHK: Буквенный Random

Всё таки заметили. Я в курсе, что буквы "ё" нет - это для удобства (потом добавлю). А по сути дела что-то можно сказать?

4

Re: AHK: Буквенный Random

MyArray := Array("а", "б", "В", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я")
Return

SC01e::
Random, r, 1, 33
Send, % MyArray[r]
Return

5

Re: AHK: Буквенный Random

Сам бы не догадался Спасибо!

6

Re: AHK: Буквенный Random

Или так:

1:: Send, % SubStr("абвгдеёжзийклмнопрстуфхцчшщъыьэюя", Rand(1,33), 1)

Rand(min,max)
{
   Random, r, min, max
   Return r
}

7 (изменено: serzh82saratov, 2013-05-06 00:44:06)

Re: AHK: Буквенный Random

Или так:


1::
   Random, Rand, 1072, 1103
   Send % Chr(Rand)
   Return

----

Хмм... Про "Ё" забыл:

1::
   Random, Rand, 1072, 1104
   Send % Rand = 1104 ? "ё" : Chr(Rand)
   Return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui