1

Тема: AHK: Извлечь содержимое переменной с переменной в названии

Есть переменная с названием var%vars%, где var - неизменная часть названия, vars - переменная, всегда содержащая некую цифру, которая изменяется в условиях цикла. Таким образом, создается несколько переменных var , имеющие порядковые номера %vars%, например var1, var2  и т.д. , с учетом того, что я заранее не знаю, какой порядковый номер сейчас присвоен переменной.
Как правильно извлечь содержимое такой переменной? AHK  не признает вариант %var%vars%%. Работает %var%%vars%, но мне это не подходит, т.к. извлекаются поочередно 2 переменных, а мне нужно получить содержимое переменной с порядковым номером, которым является содержимое другой переменной.

2 (изменено: svoboden, 2017-03-27 14:46:53)

Re: AHK: Извлечь содержимое переменной с переменной в названии

var%A_Index% =

3 (изменено: KusochekDobra, 2017-03-27 15:21:38)

Re: AHK: Извлечь содержимое переменной с переменной в названии

Привет.
svoboden, скорее всего, имел ввиду прогнать все варианты в цикле, подставив вместо переменной содержащей порядковый номер, встроенную переменную-счётчик, содержащую текущий номер итерации цикла. Если верить примеру из первого поста, то приращивание порядка всегда происходит на единицу, тогда:


vars:=5
; Заполняем пять переменных случайными значениями
Loop,%vars%
	var%A_Index% := RNDM()
; Извлекаем эти значения
Loop,%vars%
	MsgBox,,Итерация № %A_Index%,% var%A_Index%
RNDM() {
	Random,r,1,100
	return r
}

4

Re: AHK: Извлечь содержимое переменной с переменной в названии

svoboden
Встроенная переменная - это удобно, но не совсем то, что мне нужно.
Возьмем ваш пример.
Как мне теперь увидеть содержимое var%A_index%?
Например, через MsgBox. %var1% или подобное не предлагать, т.к. я заранее не знаю кол-во итераций цикла.

5 (изменено: svoboden, 2017-03-27 15:55:11)

Re: AHK: Извлечь содержимое переменной с переменной в названии

% var%A_Index%, а проверить можно, чем хочешь.

6

Re: AHK: Извлечь содержимое переменной с переменной в названии

Ну как же, Вы должны знать. Переменная "vars" содержит порядковый номер, а значит и на момент, когда потребуется извлекать значения, то она будет содержать количество совершённых приращиваний, а значит и итераций цикла.

7

Re: AHK: Извлечь содержимое переменной с переменной в названии

svoboden
Все было гораздо проще,чем я предполагал.)

8 (изменено: svoboden, 2017-03-27 15:42:52)

Re: AHK: Извлечь содержимое переменной с переменной в названии

KusochekDobra, ничего она содержать не будет, она только извлечет данные из переменных.

9

Re: AHK: Извлечь содержимое переменной с переменной в названии

Что же, пожалуй, этим всё сказано.