1

Тема: AHK: Перемещение по разделам в переменной

Здравствуйте!
Как можно сделать, что бы нажимая кнопки Left и Right, перемещаться по очереди влево или вправо начиная с зади по ячейкам ("|ячейка|") в переменной "Var", и выводить результат в MsgBox?


Var = a|b|c|d|e|f|g|h|i|

Left::

MsgBox %%
return


Right::

MsgBox %%
return

2

Re: AHK: Перемещение по разделам в переменной

А где находится зад?

3

Re: AHK: Перемещение по разделам в переменной

Var = a|b|c|d|e|f|g|h|i| <-- Вот

4

Re: AHK: Перемещение по разделам в переменной

Может так?

Var = a|b|c|d|e|f|g|h|i|
Count = 9
 
Left::
count -= 1
If count < 1
  count := 9
loop, parse, var, |
  if (a_index = count)
    MsgBox %a_loopfield%
return
 
 
Right::
count += 1
If count > 9
  count := 1
loop, parse, var, |
  if (a_index = count)
    MsgBox %a_loopfield%
return

5

Re: AHK: Перемещение по разделам в переменной

Это, только нужно что бы по началу при нажатии назад, тоесть Left начиналось с последней ячейки где в данном случае находится "i",
и доходя до последней ячейке на другую сторону уже не переходило.
Типа вот так:

Var = a|b|c|d|e|f|g|h|i|

По нажатию Left  "i" потом "h" потом ... потом "a" потом MsgBox Конец
а если нажимать в другую сторону Right, то по порядку в другую сторону и после "i" MsgBox Конец

6

Re: AHK: Перемещение по разделам в переменной

   Var = a|b|c|d|e|f|g|h|i|

   Var := SubStr(Var, 1, -1)  ; отрезаем последний символ
   StringSplit, Var, Var, |   ; Var1 = a, Var2 = b ..., Var0 = 9 — количество ячеек
   Cell := Var0+1
   Return

Left::
Right::
   Cell += A_ThisHotkey = "Left" ? -1 : 1
   MsgBox, % (Cell >= Var0+1 || Cell < 1) ? "Конец" : Var%Cell%
   Cell := Cell < 1 ? 0 : Cell > Var0+1 ? Var0+1 : Cell
   Return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: AHK: Перемещение по разделам в переменной

Все ОК! Спасибо большое!

А я че токо не мудрил с этими перемещениями.