Author Topic: Что не так в коде?  (Read 1127 times)

0 Members and 1 Guest are viewing this topic.

Пытливый

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
Что не так в коде?
« on: September 10, 2017, 10:27:27 PM »
Code: [Select]
ArrPush($AItem, "1")
ArrPush($AItem, "2")
ArrPush($AItem, "3")

LogClear
GetScreen
for ($n=0, $n<3)
   if_picture_in(452, 317, 1451, 986, StrConcat("\Pictures\",$AItem[$n],".bmp"))
      ArrPush($AItems, $AItem[$n])
      ArrPush($AItems, $_return1)
      ArrPush($AItems, $_return2)
      print($AItems[$n*3+0]," ",$AItems[$n*3+1]," ",$AItems[$n*3+2])
   end_if
end_cyc   
Пока писал это код, брал размеры для if_picture_in() всего экрана, что подтормаживало, но работало нормально.
Задал меньше координаты и стала вываливаться ошибка интерпретации на print(...)
В чем засада?
« Last Edit: September 10, 2017, 10:30:28 PM by Пытливый »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Что не так в коде?
« Reply #1 on: September 11, 2017, 09:19:32 AM »
Обращаешься к несуществующим элементам массива.
Сама логика порочна. Дописываешь в массив только при нахождении, а вывод принтом жёстко по $n. $n ведь бежит вперёд.

Если "\Pictures\0.bmp" или "\Pictures\1.bmp" не найдёт, а следующую найдёт - индексы в
($AItems[$n*3+0]," ",$AItems[$n*3+1]," ",$AItems[$n*3+2])
будет вне массива.


Пытливый

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
Re: Что не так в коде?
« Reply #2 on: September 11, 2017, 08:19:36 PM »
Плин. Ну конечно-же... такую глупую ошибку давненько не совершал.
Спасибо.