здравствуйте, насколько я понял операторы нельзя использовать в условиях цикла то есть конструкция типа:
Не работает.
Но почему то у меня не работает так же и такая схема:
знаки < и > вертел всяко разно.
общая кострукция такая:
Когда убираю оператор OR всё работает как в отрицательную сторону, так и в положительную, видимо дело в самом операторе.
Общий смысл скрипта в том, что если после 4 проверок число достигло -4 и более, делаем вывод что мы на не станции и переходим к следующему датчику, ну и соответственно если мы получаем число 4 и больше, то мы на станции и опять же переходим к другой функции. То есть моя цель завершить цикл(чтобы он не висел), и продолжить дальше опрашивать датчики, имея в кармане завершенную переменную $c_station = -4 или $c_station = 4
пробовал циклы For, но видимо он тоже не любит операторы or,and и т.д. ,по крайней мере, в хелпе одобрено использование операторов только в If..endif
Код:
while $i <=4 or $i <=-4
Не работает.
Но почему то у меня не работает так же и такая схема:
Код:
if $c_station <=4 OR $c_station <=-4 Then ExitLoop
знаки < и > вертел всяко разно.
общая кострукция такая:
Код:
Func c_station()
While 1
Sleep(50)
$c_station_pcs = PixelChecksum(1803, 36,1810, 46)
$c_station_pcs_ini = 3136334335
Select
Case $c_station_pcs = $c_station_pcs_ini
$c_station = $c_station + 1
ToolTip("Проверка пройдена, мы на станции" & @CRLF & "Ok" & @CRLF & "$c_station = " & $c_station,25,35,"Датчик Станции",1,4)
sleep(500)
Case $c_station_pcs <> $c_station_pcs_ini
$c_station = $c_station -1
ToolTip("Проверка НЕ пройдена, мы НЕ на станции" & @CRLF & @CRLF & "$c_station = " & $c_station,25,35,"Датчик Станции",1,4)
sleep(500)
Case Else
$c_station = $c_station -1
ToolTip("Стыковочный режим неисправен" & @CRLF & @CRLF & "$c_station = " & $c_station,25,35,"Датчик Станции",1,4)
sleep(500)
EndSelect
if $c_station <=4 OR $c_station <=-4 Then ExitLoop
sleep(2000)
WEnd
EndFunc
Когда убираю оператор OR всё работает как в отрицательную сторону, так и в положительную, видимо дело в самом операторе.
Общий смысл скрипта в том, что если после 4 проверок число достигло -4 и более, делаем вывод что мы на не станции и переходим к следующему датчику, ну и соответственно если мы получаем число 4 и больше, то мы на станции и опять же переходим к другой функции. То есть моя цель завершить цикл(чтобы он не висел), и продолжить дальше опрашивать датчики, имея в кармане завершенную переменную $c_station = -4 или $c_station = 4
пробовал циклы For, но видимо он тоже не любит операторы or,and и т.д. ,по крайней мере, в хелпе одобрено использование операторов только в If..endif