1 (изменено: Parazit, 2017-05-23 14:48:25)

Тема: AutoIt: Изменение счётчика итераций цикла

Привет.

Допустим, у меня есть некий цикл, он работает, как нужно, но в определённый момент,
мне нужно изменить количество итераций.
Из вне. Из другой функции.
Возможно ли такое в принципе?


$Arr = 7

For $i = 0 To $Arr
MsgBox(0, "111", $i)
; If $i = 3 Then ExitLoop
Next


Func _bbb()
;И отсюда, по некому событию я хочу изменить $Arr
EndFunc

Изменить $Arr. Хоть, прибавить, хоть убавить.
Как такое реализовать?
Всегда выдаётся ошибка, что массив имеет неправильное количество индексов.
Дело в том, что я получаю переменную $Arr из массива (через UBound).
Т.е., это всего лишь цифра, которую мне нужно изменить, при появлении некоторого события.

Я думал про ReDim, но как не крутил, ничего не получилось.

Для примера, я хочу, чтобы было не 7, а 12 итераций цикла.

2

Re: AutoIt: Изменение счётчика итераций цикла

Parazit
1. Не уловил связи между событием и UBound. Конкретный пример есть?
2. $Arr нужно менять в любую сторону или только в меньшую?

3

Re: AutoIt: Изменение счётчика итераций цикла

Flasher, это невозможно.

Переменная StopValue читается только при первом проходе.

Вывод:

Через For To Next реализовать такое невозможно.

4

Re: AutoIt: Изменение счётчика итераций цикла

Parazit
Может, сперва на вопросы ответишь?
Тогда будет ясно, что именно невозможно.

5 (изменено: Parazit, 2017-05-24 02:02:33)

Re: AutoIt: Изменение счётчика итераций цикла

Я хочу изменить переменную $Arr.
Это число, которое я получаю из другого массива.
У меня есть GUI. В нём идёт обычная итерация. Но, когда я нажимаю определённую кнопку,
то я хочу изменить количество итераций, т.е., я пытаюсь присвоить переменной $Arr другое значение.


Ну и в вопросе написано, что изменение итераций может быть в любую сторону, хоть прибавить, хоть убавить.

6

Re: AutoIt: Изменение счётчика итераций цикла

В таком случае остаётся бесконечный цикл и ExitLoop по условию.