回傳值是一串STRING字符,每潭訓傳值之間是用@@間隔符表示的,比如XXXXX@@XXXXXXX@@,這樣就是表示有2條資訊在這個回傳值。
現在的問題是如何分解,回傳值也有可能是3潭訓4條,如何分解@@間隔符,謝謝。
uj5u.com熱心網友回復:
ls_tmp = upper(message.stringparm + "|")
DO WHILE TRUE
li_pos = pos(ls_tmp,"|")
IF li_pos > 0 THEN
i ++
ls_e[i] = left(ls_tmp,li_pos - 1)
ls_tmp = mid(ls_tmp,li_pos + 1)
CONTINUE
END IF
EXIT
LOOP
==========================================================
uj5u.com熱心網友回復:
//得到分隔符分開后的陣列
//引數1:要分隔的字串
//引數2:輸出分開后的陣列
//引數3:分隔符
//回傳陣列的上限數
string as_text='XXXXX@@XXXXXXX@@'
string as_sep='@@'
long li_pos=0,li_startpos=1,i=0,l_len,li_lastpos
int l_lensep
string ls_empty[]
ls_ret[]=ls_empty[]
l_len=len(as_text)
l_lensep=len(as_sep)
li_pos=pos(as_text,as_sep)
//正常截取
do while(li_pos>0)
i++
ls_ret[i]=mid(as_text,li_startpos,li_pos - li_startpos)
li_lastpos=li_pos
li_startpos=li_lastpos + l_lensep
li_pos=pos(as_text,as_sep,li_startpos)
loop
if l_len>=li_startpos then
i++
ls_ret[i]=mid(as_text,li_startpos)
end if
return i
uj5u.com熱心網友回復:
我自己在用的一個。參考下吧。//根據如參回傳定單編碼陣列
/*采用截取方式來進行提取*/
integer l_i,l_ii[]
string s_values[],s_value
s_value = trim(mle_value)
for l_i = 1 to lena(trim(mle_value))
l_ii[l_i] = pos(trim(s_value),',')
if l_ii[l_i] > 0 then
s_values[l_i] = mid(s_value,1,l_ii[l_i] - 1)
s_value=https://bbs.csdn.net/topics/right(s_value,len(s_value) - (len(s_values[l_i]) + 1) )
else
l_i = lena(trim(mle_value))
end if
next
return s_values[]
uj5u.com熱心網友回復:
//根據如參回傳定單編碼陣列
/*采用截取方式來進行提取*/
integer l_i,l_ii[]
string s_values[],s_value
s_value = trim(mle_value)
for l_i = 1 to lena(trim(mle_value))
l_ii[l_i] = pos(trim(s_value),',')
if l_ii[l_i] > 0 then
s_values[l_i] = mid(s_value,1,l_ii[l_i] - 1)
s_value=https://bbs.csdn.net/topics/right(s_value,len(s_value) - (len(s_values[l_i]) + 1) )
else
l_i = lena(trim(mle_value))
end if
next
return s_values[]
uj5u.com熱心網友回復:
通過截取欄位的方式作回圈處理即可轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/33039.html
標籤:腳本語言
