Автокликер Clickermann :: Форум

Основной раздел => Ошибки => Topic started by: i0 on November 17, 2015, 02:48:04 PM

Title: strseparate: пытается вычислять строки если в них "+" или "-"
Post by: i0 on November 17, 2015, 02:48:04 PM
Code: (clickermann) [Select]
undefine( $arr )
$str= "abc9999-999-99-9; abc5555+555+55+5"
strseparate( $str, ";", $arr)
for ( $i=0,$i < arrsize($arr) )
   print($arr[$i])
end_cyc
halt
Code: [Select]
14:45:01 -108
14:45:01 60
Title: Re: strseparate: пытается вычислять строки если в них "+" или "-"
Post by: Atas on November 17, 2015, 07:24:26 PM
Есть такой глюк - по разному добавленные в массив элементы, по разному и извлекать приходится.
Code: (clickermann) [Select]
$str= "abc9999-999-99-9; abc5555+555+55+5"

strseparate( $str, ";", $arr)

WHILE(arrsize($arr) > 0)
   print(ARRPOP($arr))
END_CYC

HALT

Code: [Select]
19:19:25  abc5555+555+55+5
19:19:25 abc9999-999-99-9


Title: Re: strseparate: пытается вычислять строки если в них "+" или "-"
Post by: i0 on November 17, 2015, 07:37:38 PM
значит ф-ция не при чём, благодарю за подсказку
теперь ясно как выкручиваться
Title: Re: strseparate: пытается вычислять строки если в них "+" или "-"
Post by: Vint on November 18, 2015, 09:57:39 AM
Давно ещё я писал про этот глюк. Забыл уже, думал поправили.

Только там в обратную сторону проблема была, в скрипте нужны были числа. При извлечении по индексу получалось число, а arrpop давал строку.
Но причина одна естественно.
Нужно или доработать механизм определения типа по содержимому, что предпочтительней (не только в этом месте проблема).
Или временно сделать всё в массиве как строки... Не, так не надо. Ну его в баню.