Автор Тема: некорректная работа IF с одним условием  (Прочитано 1267 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Vulty

  • Зашел в гости
  • *
  • Сообщений: 2
    • Просмотр профиля
Всем привет!
Столкнулся с, на первый взгляд, необъяснимым глюком - в в прилагаемом сценарии ветка ELSE последнего IF'а никогда не наступает:

wndpos( wndfind("Connecting..."), 0, 0)
wndpos( wndfind("vulty-ipad-2.local"), 970, 0)

DEFINE ($var0, "screens\00001.bmp")
DEFINE ($var15, "screens\150003.bmp")
DEFINE ($flag, 0)
DEFINE ($str, "log_")

$flag = 0

logwrite("start", $flag)
LCLICK(1400, 750)
WAIT(2)

GETSCREEN
colormode(8)
$count = PXLCRC (769, 811, 797, 835)
screenshotex(550, 720, 580, 739, $str)
print($count)
logwrite("screen", $flag)
IF_PICTURE_IN (550, 720, 580, 739, $var0, 0, 99)
  $flag=1
  logwrite("0 found", $flag)
end_if

IF_PICTURE_IN (550, 720, 580, 739, $var15, 0, 99)
  $flag = 1
  logwrite("15 found", $flag)
end_if

logwrite("0 NOT found", $flag)

//IF(($count = $var0)|($count = $var15))
IF $flag = 1
  LCLICK(1400, 750)
  Logwrite("collect", $flag)
  WAIT(1)
else
  logwrite("charge", $flag)
  WAIT(0.5)
  LCLICK(1850,470)
END_IF

то есть равен флаг 1 или 0 - в логе идёт:
18:15:24 start0
18:15:27 3959175761
18:15:27 screen0
18:15:29 0 NOT found0
18:15:29 collect0
18:15:30 start0
18:15:32 3959175761
18:15:32 screen0
...

Впрочем, вопрос снимается:
достаточно было поставить скобки вокруг условия в последнем IF )
IF ($flag = 1)
...
« Последнее редактирование: Декабрь 30, 2014, 12:01:08 pm от Vulty »

Johnny

  • Создатель
  • Герой форума
  • *
  • Сообщений: 588
    • Просмотр профиля
Re: некорректная работа IF прис одним условием
« Ответ #1 : Декабрь 29, 2014, 09:49:26 pm »
тут вам не паскаль

Vulty

  • Зашел в гости
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: некорректная работа IF с одним условием
« Ответ #2 : Декабрь 30, 2014, 12:05:29 pm »
таки да, Джонни... проверки синтаксиса в редакторе (ну, кроме подсветки), я так понимаю, нет и не планируется? )
в принципе, логично. ибо и так работает. обычно.