вот и улетели в трубу очередные 2 дня на поиск причины бага
function SubString_Test1000 takes nothing returns nothing
local string s=""
local string s10="0123456789"
local string s100=s10+s10+s10+s10+s10+s10+s10+s10+s10+s10
local string s900=s100+s100+s100+s100+s100+s100+s100+s100+s100
local string s1100=s900+s100+s100
set s=SubString(s900,0,StringLength(s900))
call BJDebugMsg("900-0 "+SubString(s,StringLength(s)-10,StringLength(s))+" - "+I2S(StringLength(s)))
set s=SubString(s900,0,StringLength(s900)-1)
call BJDebugMsg("900-1 "+SubString(s,StringLength(s)-10,StringLength(s))+" - "+I2S(StringLength(s)))
set s=SubString(s1100,0,StringLength(s1100))
call BJDebugMsg("1100-0 "+SubString(s,StringLength(s)-10,StringLength(s))+" - "+I2S(StringLength(s)))
set s=SubString(s1100,0,StringLength(s1100)-1)
call BJDebugMsg("1100-1 "+SubString(s,StringLength(s)-10,StringLength(s))+" - "+I2S(StringLength(s)))
endfunction
set s=SubString(s,0,900-1) - нормально работает
set s=SubString(s,0,1100-1) - криво работает
set s=SubString(s,0,1100-1) - криво работает
близы только внесли путаницу со своими
set s4000=s1000+s1000+s1000+s1000
если у вас нативки не умеют работать со строками 1000-4000, то зачем вводить поддержку длинных строк и потом натыкаться на баги?
set s4000=s1000+s1000+s1000+s1000
если у вас нативки не умеют работать со строками 1000-4000, то зачем вводить поддержку длинных строк и потом натыкаться на баги?
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ред. host_pi
set s=SubString(s,0,>1000) - не работает
т.е. и не крит и не нормальная работа
т.е. фактически макс длина строки даже не 1000/4000, а 500/2000
Ред. host_pi
только вот вопрос - можно либо притворяться, что такой проблемы нет, либо открыто писать что она есть, но есть обходные пути
и тебе нужно у неё обрезать последний символ?
при этом сохранив её в переменной, а не на экране в пропечатываемых 100 символах
как быть?
делить на 4 части по 1000, потом из последней отрезать , а потом опять сплюсовать s=s1+s2+s3+s4?
как это прекрасно, люблю жасы
Ред. IceFog
Вместо этого, я обнаружил проблему при склейке строк оператором "+".
Локальная переменная занимает 4100 байт в стеке и вряд ли уместит в себе 2 гигабайта.
Ред. host_pi
такое сработает: