Author Topic: strseparate: пытается вычислять строки если в них "+" или "-"  (Read 4164 times)

0 Members and 1 Guest are viewing this topic.

i0

  • Оплот сообщества
  • ****
  • Posts: 353
  • CMann 4.13.014 final, ie, presto, win7 x86, x64
    • View Profile
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

Atas

  • Активный участник
  • ***
  • Posts: 147
    • View Profile
Есть такой глюк - по разному добавленные в массив элементы, по разному и извлекать приходится.
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



i0

  • Оплот сообщества
  • ****
  • Posts: 353
  • CMann 4.13.014 final, ie, presto, win7 x86, x64
    • View Profile
значит ф-ция не при чём, благодарю за подсказку
теперь ясно как выкручиваться

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Давно ещё я писал про этот глюк. Забыл уже, думал поправили.

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