Author Topic: Работает ли CASE со строками? (Clickermann_4.13.010b)  (Read 1959 times)

0 Members and 1 Guest are viewing this topic.

ya12

  • Активный участник
  • ***
  • Posts: 165
    • View Profile
Пока скрипт был маленький работал так: раз в 5 сек искал в каталоге ini каталог с маской gnom_b* (возможные значения * 0 и 1), а с увеличением объема скрипта CASE сломался и в не зависимости от SWITCH($arr2[$ia2]), выбирается последний CASE в списке.  Т.е. CASE("gnom_b-1"). Если его закоментировать выберется $_gnom_b = 0

Code: (clickermann) [Select]
THREAD(gnom_b, 0) //вкл-выкл гнома
UNDEFINE($arr2)
getdirlist($arr2, "ini\gnom_b*")
for($ia2=0, $ia2< arrsize($arr2))
   print($_gnom_b," ",$ia2," ",$arr2[$ia2])
   
   SWITCH($arr2[$ia2])       
   CASE("gnom_b-0")    //база
      $_gnom_b = 0
   CASE("gnom_b-1")    //в бой
      $_gnom_b = 1
   END_SWITCH
end_cyc

print($_gnom_b," ",$_gnom_b2)

if(($_gnom_b=1)&($_gnom_b2=0))  //вперед по точкам
   $_gnom_b2 = 1
   halt
   SETTHREAD(boy, 1) // 0 - Пауза, 1 - Старт, 2 - Стоп
   SETTHREAD(vpered, 1)
END_IF

wait(5)
END_THREAD

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Работает ли CASE со строками? (Clickermann_4.13.010b)
« Reply #1 on: February 25, 2018, 04:28:50 PM »
CASE со строками работает.

Может быть "с увеличением объема скрипта" в скрипт закралась ошибка?

ya12

  • Активный участник
  • ***
  • Posts: 165
    • View Profile
Re: Работает ли CASE со строками? (Clickermann_4.13.010b)
« Reply #2 on: February 25, 2018, 04:42:25 PM »
CASE больше нет, переменные используется только в этом потоке, дочерние потоки запускаются только здесь. По логам значение переменной $_gnom_b изменяется в CASE("gnom_b-1"), при том что каталог называется gnom_b-0.

Переписал на IF и глюк пропал.