1 (изменено: Autosql, 2016-10-17 16:08:04)

Тема: AHK: Array вывод в send

Добрый день.

Есть задача.
У меня есть список например:

Array := ["ааа","ббб", "ввв"].....

Мне нужно случайным образом вытащить одно значение и поместить его в send.
Пробовал сделать так:

Array := ["ааа","ббб", "ввв"]
Random, r1, 1,3
send  Array.r1

Он ничего не выводит.
Пробовал разные варианты:

send  Array.%r1%
send  Array[r1]
send  Array.[%r1%]

В интернете идет много инструкции, но с непонятно зачем используемой функцией показа в сплывающем окно.
например http://forum.script-coding.com/viewtopic.php?id=5803
Если пробовать этот код.

Array := [5, 6, 7]
MsgBox, % Array.2

он выведет число 6 это верно.
Вопрос как сделать чтобы он выводил рандомное значение ?
Если писать так

Random, r1, 1,3
Array := [5, 6, 7]
send % Array.%r1%

то он показывает ошибку.

Line Text: .%r1%
Error: Ambiguous or invalid use of "."

2

Re: AHK: Array вывод в send

Здравствуйте.


Array := ["ааа","ббб", "ввв"]
MsgBox, % Array[2] ; ббб

Рандом:


Array := ["ааа","ббб", "ввв"]
Random, rnd, 1, Array.Length()
MsgBox, % Array[rnd] ; случайное значение

Массивы(на забугорном).

3 (изменено: Autosql, 2016-10-17 18:36:29)

Re: AHK: Array вывод в send

Немного не то что я просил. Я как раз писал что с MsgBox, % Array[rnd] работает.
Тот забугорный я видел. Но как видим там нет моего варианта )

Но решение нашел.

Array := ["ааа","ббб", "ввв"]
Random, rnd, 1, Array.Length()
send % Array[rnd]

Спасибо за подсказку.

Совет. Забудьте про MsgBox,...
В коде он редко используется, из-за этого MsgBox, многие примеры не рабочие если пробовать с другими параметрами.
Как в этом примере. Но хорошо что разобрался.

4

Re: AHK: Array вывод в send

Как-то Вы так советуете, плохо разобравшись. "MsgBox" используется для наглядности, если Вас не устраивает, что нужно жмякать кнопку в окне с продемонстрированным результатом, пользуйтесь аналогами для вывода, не останавливающими процесс -> ToolTip, TrayTip. Можно создать окно и транслировать в него состояние переменных, или работы сценария в целом. Или вести лог в текстовом файле, чтобы потом читать, или парсить. "MsgBox" - удобен в своих частностях, не стоит недооценивать его применение. К тому же, его дефолтное окошко ни как не взаимодействует с логикой сценария, что полностью исключает ошибки из-за его применения.
И Вам бы получше с синтаксисом ознакомиться. Понимать, как работает - одно дело, понимать как описать - совершенно другое. Сложность вопроса состояла только в этом.