1 (изменено: alexii, 2012-01-05 04:01:52)

Тема: AHK: Определение и вызов массивов

Не могу   разобраться как определить массив и как вызывать его компоненты.
Прочитал 10 раз: Arrays, и не могу понять что и как. Попробовал 5 вариантов синтаксиса, но всё равно не работает.

Помогите, пожалуйста!

Допустим массив

massiv:=[121 333 434 754 943]

(верно написано?)

Как вызывать его третий элемент?

2 (изменено: creature.ws, 2012-01-04 22:29:55)

Re: AHK: Определение и вызов массивов

Справка
Документация AHK_L, Objects


massiv:=[121, 333, 434, 754, 943]
MsgBox % "massiv.3=" massiv.3 "`nmassiv[3]=" massiv[3]

3 (изменено: Pokerist, 2012-01-05 15:27:15)

Re: AHK: Определение и вызов массивов

Спасибо!   Получается!

Хм. И зачем тогда эти

Array%A_Index% 
Array%ArrayCount%

?

Что-то я совсем запутался.  У два массива один для игреков, другой для иксов. Я вложил один Loop в другой:

stolby12:= [...]
linii:= [...]
stb:= 3
lin:= 4

Loop, %stb%
  {
  Loop, %lin%  
   {     
    PixelGetColor, Farbe, stolby12[%stb%], linii[%lin%], RGB
...

Не работает.   stb и lin не меняется.   Вставлял  %A_Index%  вместо их. Срабатывает только для внутренного цикла. А как сделать, чтобы и для внешнего срабатывало? Или вообще всё как-то не так надо организовать?

Что касается справки, у меня не "AHK_L",  вроде.

4

Re: AHK: Определение и вызов массивов

Pokerist, зачем нажимать кучу раз Enter в сообщении? Я убрал.

5

Re: AHK: Определение и вызов массивов

Pokerist, выясните какая версия ahk используется, прочитайте соответствующий раздел справки.

6 (изменено: Pokerist, 2012-01-05 15:46:25)

Re: AHK: Определение и вызов массивов

http://s60.radikal.ru/i168/1201/ea/31920a37327c.jpg

7

Re: AHK: Определение и вызов массивов

Отлично
Значит читать следует здесь: Arrays.
Если не понятно, то здесь: ru:Arrays

Заметьте, по ссылке конструкции вида massiv:=[121 333 434 754 943] не упоминаются.

8

Re: AHK: Определение и вызов массивов

У меня эта страница в заклкдках уже три дня. Но мне это не помогло, поэтому я и создал тему,  о чём и написал в первом посте.

9

Re: AHK: Определение и вызов массивов

Хотя, мне сейчас кажется, что проблема не в массивах.  Это вопрос  о вложенных циклах, если я не ошибаюсь. Создам новую тему.

10

Re: AHK: Определение и вызов массивов

Раз уж речь зашла о «Проблемах» :
Бессмысленны попытки использовать специфичный синтаксис AHK_L в AHK Basic.
По ссылке в первом же абзаце сказано ~ "нет массивов, есть лишь переменные со специфическими именами".

11 (изменено: Indomito, 2012-04-10 12:37:04)

Re: AHK: Определение и вызов массивов

Pokerist пишет:

Хотя, мне сейчас кажется, что проблема не в массивах.  Это вопрос  о вложенных циклах, если я не ошибаюсь. Создам новую тему.

проблема не в циклах, а именно в массивах.
Не важно вложенные циклы или нет, просто не верное обращение к самому массиву.
Вот фрагмент рабочего скрипта, правда нет вложенных циклов, но это сути не меняет.

i := 1
while (arrayTxt[i] != "")
 {
   LV_Add("", arrayKey[i], arrayTxt[i])
   i++
  }

вы писали не верно, не нужны %% (на AHK_L)

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

12

Re: AHK: Определение и вызов массивов

Да, вопрос с моей стороны... т.е. от меня

Как константно описать многомерный массив, с одномерным понятно, а как с двухмерным?
Просто очень неудобно оперировать с 6-ю массивами одинаковой размерности.

Справку прочитал, вроде динамически можно читать/писать, а как описать не понятно.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

13 (изменено: creature.ws, 2012-04-10 13:23:54)

Re: AHK: Определение и вызов массивов

a := [[1,2,3],[4,5,6],[7,8,9]]
msgbox % a[2,3] " " a[3,1]

o := {a:{a1:1,a2:2,a3:3},b:{b1:1,b2:2,b3:3},c:{c1:1,c2:2,c3:3}}
msgbox % o.a.a1 " " o["a", "a2"]

14

Re: AHK: Определение и вызов массивов

Спасибо, а то я голову сломал как записать... полез в объекты с горя

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

15

Re: AHK: Определение и вызов массивов

Дык массивы, ассоциативные массивы, классы — всё объекты.

16

Re: AHK: Определение и вызов массивов

Ну, да просто я долго переводил как же описать объект который мне нужен и запутался "в конец"

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

17 (изменено: Bobby, 2012-04-10 15:09:15)

Re: AHK: Определение и вызов массивов

creature.ws пишет:
a := [[1,2,3],[4,5,6],[7,8,9]]
msgbox % a[2,3] " " a[3,1]

o := {a:{a1:1,a2:2,a3:3},b:{b1:1,b2:2,b3:3},c:{c1:1,c2:2,c3:3}}
msgbox % o.a.a1 " " o["a", "a2"]

У меня выдает ошибку:  {a
Видимо, фигурные скобки {}  надо заменить на квадратные  [].
Тогда идет ошибка: " o.a.a1".  Меняем точку на запятую " o, a, a1"  и ждем след. ошибку.
Или это для АНК_L ? Ясно, для  АНК_L.  Я проверял на АНК.

18

Re: AHK: Определение и вызов массивов

Bobby ошибки нет, у тебя AHK_L или AHK Basic?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro