Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: putman on December 16, 2016, 02:50:25 PM
-
Здравствуйте.
У меня некорректно сравнивается строка сформированная из числовых переменных:
$left_pos = STRCONCAT ($x_pos-1,"-",$y_pos)
Число до дефиса вычисляется путём вычитания единицы из переменной.
Если выполнить:
LOGWRITE ($left_pos)
, отобразит корректно, т.е. 6-2.
Если использовать переменную $left_pos в условии, выполняются сразу несколько из них.
Если для проверки делаю так:
$left_pos = "6-2"
, условие работает корректно.
Как добиться корректной работы функции формирующей строку путём склеивания двух числовых переменных с вычитанием/сложением со строкой ?
-
И так как написал не работает ...
Обождите отвечать, сейчас всё проверю и спрошу =).
-
Если использовать переменную $left_pos в условии, выполняются сразу несколько из них.
И как выглядят эти условия.
-
Вот, запустите это:
LOGCLEAR
$left_pos = "6-4"
$right_pos = "7-3"
$up_pos = "6-2"
$dn_pos = "6-1"
$real_pos = "6-2"
IF ($real_pos = $up_pos)
LOGWRITE ("Up")
END_IF
IF ($real_pos = $dn_pos)
LOGWRITE ("Down")
END_IF
IF ($real_pos = $left_pos)
LOGWRITE ("Left")
END_IF
IF ($real_pos = $right_pos)
LOGWRITE ("Right")
END_IF
halt
У меня сейчас голова взорвется.
Почему срабатывают два условия ?
-
Кажется начал догонять.
Он их считает, строки то ....
Он не как строку понимает - "6-2", а как число 4.
Значит и строка "7-3" = 4.
Как же быть то мне теперь ?
...
Использовать вместо дефиса другой разделитель.
...
В общем сам себе и ответил.
Спасибо =).
-
Можно также получать Хеш строки
LOGCLEAR
$left_pos = "6-4"
$right_pos = "7-3"
$up_pos = "6-2"
$dn_pos = "6-1"
$real_pos = "6-2"
IF (STRMD5($real_pos) = STRMD5($up_pos))
LOGWRITE ("Up")
END_IF
IF (STRMD5($real_pos) = STRMD5($dn_pos))
LOGWRITE ("Down")
END_IF
IF (STRMD5($real_pos) = STRMD5($left_pos))
LOGWRITE ("Left")
END_IF
IF (STRMD5($real_pos) = STRMD5($right_pos))
LOGWRITE ("Right")
END_IF
halt
-
Можно также получать Хеш строки.
Спасибо, буду иметь в виду.
-
Эту ошибку я давно нашёл и описывал.
Вычисление строки в условиях IF. В других функциях где были проблемы поправили, а в IF сломалось.
Точнее в IF сломалось на версии где были изменены логические выражения, когда они стали вычисляться True False из разных переменных и строк...
Там вот всплыла старая ошибка которая здесь не проявлялась.
P.S. Нашёл. Вот после этих изменений
http://crapware.aidf.org/forum/index.php?topic=356.msg4960#msg4960
Здесь пытался решить
http://crapware.aidf.org/forum/index.php?topic=356.msg5147#msg5147