有一段文字,比如: 123456積極急急急 很長的一段文字 ,我準備寫一個函式將這些text進行處理,傳過來這段文字的總長度和text這兩個引數,然后在函式里面處理,大致是每20個字串算一行,最后回傳的是多少行,每行里面的text就行了,新手求大神們指教。謝謝
uj5u.com熱心網友回復:
其實就是查找~r~n (回車)吧////得到分隔符分開后的陣列
////引數1:要分隔的字串
////引數2:輸出分開后的陣列
////引數3:分隔符
////回傳陣列的上限數
//
//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熱心網友回復:
函式:global type gf_split_fixedlen from function_object
end type
forward prototypes
global function long gf_split_fixedlen (string as_text, integer al_long, ref string as_result[])
end prototypes
global function long gf_split_fixedlen (string as_text, integer al_long, ref string as_result[]);
long ll_i, ll_len
ll_len = len(as_text)
for ll_i = 1 to ceiling(ll_len / al_long)
as_result[ll_i] = mid(as_text, (ll_i - 1) * al_long + 1, al_long)
next
return ll_i
end function
呼叫方法
string ls_data[]
long ll_upperbound
ll_upperbound = gf_split_fixedlen("string ls_data[]long ll_upperboundll_upperbound = gf_split_fixedlen", 20, ls_data)
messagebox('', ll_upperbound)
uj5u.com熱心網友回復:
主要方法long ll_i, ll_len
ll_len = len(as_text)
for ll_i = 1 to ceiling(ll_len / al_long)
as_result[ll_i] = mid(as_text, (ll_i - 1) * al_long + 1, al_long)
next
return ll_i
uj5u.com熱心網友回復:
你的方法我看了,很是感謝,就是沒見過ceiling的使用,我試下效果,如果有不懂之處還望詳解,謝謝!
uj5u.com熱心網友回復:
現在多少行是回傳了 但是那每行的內容呢?還有我呼叫這個ls_data放什么呢?uj5u.com熱心網友回復:
ref string as_result[]結果不是已經回傳到ls_data陣列里了嗎?
uj5u.com熱心網友回復:
每行里的內容就放在ls_data這個陣列里
uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/41774.html
標籤:基礎類
