Author Topic: длинна строки с символами /!()-+=^&|*  (Read 4093 times)

0 Members and 1 Guest are viewing this topic.

garr24

  • Зашел в гости
  • *
  • Posts: 15
  • Помогу с написанием скрипта за скромную оплату
    • View Profile
длинна строки с символами /!()-+=^&|*
« on: December 23, 2014, 01:02:04 PM »
В скрипте часто использую строковые переменные, которые после определения их длинны ( if($s1>0) ) печатаются через KEYSTRING("$s1")(в данном примере заменил на print("$s1")). При обнаружении в строке этих символов строка печататься отказывается так как длинна становится (указана после // в примере).Ошибка ли это или я что-то делаю не так? (Часто нужно использовать /-()!& )

Code: (clickermann) [Select]
$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
« Last Edit: December 23, 2014, 01:33:19 PM by Oraven »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: длинна строки с символами /!()-+=^&|*
« Reply #1 on: December 23, 2014, 01:32:43 PM »
Чтобы определить длину строки нужно использовать соответствующую функцию

Code: (clickermann) [Select]
$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

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: длинна строки с символами /!()-+=^&|*
« Reply #2 on: December 23, 2014, 01:40:52 PM »
В скрипте часто использую строковые переменные, которые после определения их длинны ( if($s1>0) )...
А с чего ты взял что это длина?
Вот длина:
Code: (clickermann) [Select]
//$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

Лог:
Code: [Select]
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 и то это не ноль.
« Last Edit: December 23, 2014, 01:43:46 PM by Vint »


garr24

  • Зашел в гости
  • *
  • Posts: 15
  • Помогу с написанием скрипта за скромную оплату
    • View Profile
Re: длинна строки с символами /!()-+=^&|*
« Reply #3 on: December 23, 2014, 01:46:13 PM »
Oraven, СПАСИБО! А я думал что кликер, при сравнении строковых переменных, берет длину строки этой переменной...

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: длинна строки с символами /!()-+=^&|*
« Reply #4 on: December 23, 2014, 01:49:43 PM »
Ты рано обрадовался  ;D, проблемы со строками всё равно есть. Да и спецсимволы ты через  KEYSTRING не напечатаешь (если исключить мазохизм с разрезанием и нажатием Shift).
Строку как она есть беспроблемно можно вставить только через буфер обмена.
« Last Edit: December 24, 2014, 03:44:42 PM by Vint »


garr24

  • Зашел в гости
  • *
  • Posts: 15
  • Помогу с написанием скрипта за скромную оплату
    • View Profile
Re: длинна строки с символами /!()-+=^&|*
« Reply #5 on: December 23, 2014, 02:19:22 PM »
СПАСИБО, Vint!)буфер мне подойдет. Работает норм)ВСЕМ СПАСИБО!!!