Автокликер Clickermann :: Форум
Основной раздел => Ошибки => Topic started by: garr24 on December 23, 2014, 01:02:04 PM
-
В скрипте часто использую строковые переменные, которые после определения их длинны ( if($s1>0) ) печатаются через KEYSTRING("$s1")(в данном примере заменил на print("$s1")). При обнаружении в строке этих символов строка печататься отказывается так как длинна становится (указана после // в примере).Ошибка ли это или я что-то делаю не так? (Часто нужно использовать /-()!& )
$s1 = "w/w" // $s1 < 0
$s2 = "w!w" // $s2 = 0
$s3 = "w(w" // error
$s4 = "w)w" // error
$s5 = "w-w" // $s5 < 0
$s6 = "w|w" // $s6 < 0
$s7 = "w+w" // $s7 < 0
$s8 = "w=w " // $s8 = 0
$s9 = "w^w" // $s9 < 0
$s10 = "w*w" // $s10 < 0
$s11 = "W&w" // $s11 < 0
if($s1>0)
print($s1)
end_if
if($s2>0)
print($s2)
end_if
//if($s3>0)
// print($s3)
//end_if
//if($s4>0)
// print($s4)
//end_if
if($s5>0)
print($s5)
end_if
if($s6>0)
print($s6)
end_if
if($s7>0)
print($s7)
end_if
if($s8>0)
print($s8)
end_if
if($s9>0)
print($s9)
end_if
if($s10>0)
print($s10)
end_if
if($s11>0)
print($s11)
end_if
halt
-
Чтобы определить длину строки нужно использовать соответствующую функцию
$s1 = "w/w" // $s1 < 0
$s2 = "w!w" // $s2 = 0
$s3 = "w(w" // error
$s4 = "w)w" // error
$s5 = "w-w" // $s5 < 0
$s6 = "w|w" // $s6 < 0
$s7 = "w+w" // $s7 < 0
$s8 = "w=w " // $s8 = 0
$s9 = "w^w" // $s9 < 0
$s10 = "w*w" // $s10 < 0
$s11 = "W&w" // $s11 < 0
if(STRLEN($s1)>0)
print($s1)
end_if
if(STRLEN($s2)>0)
print($s2)
end_if
if(STRLEN($s3)>0)
print($s3)
end_if
if(STRLEN($s4)>0)
print($s4)
end_if
if(STRLEN($s5)>0)
print($s5)
end_if
if(STRLEN($s6)>0)
print($s6)
end_if
if(STRLEN($s7)>0)
print($s7)
end_if
if(STRLEN($s8)>0)
print($s8)
end_if
if(STRLEN($s9)>0)
print($s9)
end_if
if(STRLEN($s10)>0)
print($s10)
end_if
if(STRLEN($s11)>0)
print($s11)
end_if
halt
-
В скрипте часто использую строковые переменные, которые после определения их длинны ( if($s1>0) )...
А с чего ты взял что это длина?
Вот длина:
//$s1 = "w/w" // $s1 < 0
//$s2 = "w!w" // $s2 = 0
//$s3 = "w(w" // error
//$s4 = "w)w" // error
//$s5 = "w-w" // $s5 < 0
//$s6 = "w|w" // $s6 < 0
//$s7 = "w+w" // $s7 < 0
//$s8 = "w=w" // $s8 = 0
//$s9 = "w^w" // $s9 < 0
//$s10 = "w*w" // $s10 < 0
//$s11 = "W&w" // $s11 < 0
ARRPUSH($arr, "w/w")
ARRPUSH($arr, "w!w")
ARRPUSH($arr, "w(w")
ARRPUSH($arr, "w)w")
ARRPUSH($arr, "w-w")
ARRPUSH($arr, "w|w")
ARRPUSH($arr, "w+w")
ARRPUSH($arr, "w=w")
ARRPUSH($arr, "w^w")
ARRPUSH($arr, "w*w")
ARRPUSH($arr, "W&w")
FOR($i=0, $i<ARRSIZE($arr))
LOGWRITE ("$s", $i+1, " = ", STRLEN ($arr[$i]))
END_CYC
HALT
Лог:
13:35:55 $s1 = 3
13:35:55 $s2 = 1
13:35:55 $s3 = 3
13:35:55 $s4 = 3
13:35:55 $s5 = 3
13:35:55 $s6 = 3
13:35:55 $s7 = 3
13:35:55 $s8 = 1
13:35:55 $s9 = 3
13:35:55 $s10 = 3
13:35:55 $s11 = 3
Как видишь, проблемы только с №2 и №8 и то это не ноль.
-
Oraven, СПАСИБО! А я думал что кликер, при сравнении строковых переменных, берет длину строки этой переменной...
-
Ты рано обрадовался ;D, проблемы со строками всё равно есть. Да и спецсимволы ты через KEYSTRING не напечатаешь (если исключить мазохизм с разрезанием и нажатием Shift).
Строку как она есть беспроблемно можно вставить только через буфер обмена.
-
СПАСИБО, Vint!)буфер мне подойдет. Работает норм)ВСЕМ СПАСИБО!!!