TC官方合作论坛
标题:
TC库中没有Split这个函数,我写了一个,分享下~
[打印本页]
作者:
我就喜欢呵呵呵
时间:
2011-12-12 19:04
标题:
TC库中没有Split这个函数,我写了一个,分享下~
如题,许多人说,TC库中没有Split函数,很不方便,在2.006内测版本可用数组之际,我就自己写了一个,欢迎各位拿去使用,免费哦~~~
//功能说明:Split函数功能主要是从一个以str2为分界符的字符串str1中,得到一个数组
//举例,str1="(111,123)-(22,123)-(222,213)-(0,0)"
// str2 = "-"
// string[] myString //定义一个数组
// 那么调用函数 myString = Split(str1,str2)
// myString[0] = "4" //myString[0]表示得到了几个子字符串,这里得到了4个
// myString[1] = (111,123)
// myString[2] = (22,123)
// myString[3] = (222,213)
// myString[4] = (0,0)
// 若str1或者str2为空,则返回的数组长度为1,内容为"-1",比如 myString = Split("",""),则myString[0] = "-1"
// 若str1或者str2为空,则返回的数组长度为1,内容为"-1",比如 myString = Split("123","1234")
//则myString[0] = "-1"
function string[] Split(string str1,string str2)
int str1Len = str.strleng(str1)
int str2Len = str.strleng(str2)
if (str1Len == 0 || str2Len == 0 || str1Len<str2Len)
string[] myString = string[2]
myString[0] = "-1"
return myString
endif
string[] myString
int arrayLen = str1Len/str2Len
if (arrayLen < 100)
myString = string[100]
else
myString = string[1000]
endif
int index = 0
int i = 1
string tempStr1 = str1
int tempStr1Len = 0
while(true)
index = str.findstr(tempStr1,str2)
if(index == -1)
if (tempStr1 != "")
myString[i] = tempStr1
endif
myString[0] = convert.inttostr(i-1)
return myString
endif
if(index == 0)
tempStr1 = str.strcut(tempStr1,str2Len,true)
else
myString[i] = str.strsub(tempStr1,0,index)
i = i + 1
tempStr1 = str.strcut(tempStr1,str2Len+index,true)
endif
endwhile
endfunction
复制代码
经过我的初步测试是没有错,不过各位要是想拿去用的话,还是自己测试一下~
这个只是支持最新的内测版本,带有数组功能的版本~
若是用2.03版本,请自己将数组变换为队列~
若是用的2.006版本,请将函数定义放在函数调用之前,这个是因为目前内测版本数组功能还未完全做好,各位使用时注意~
同时,希望有人能拿出自己平时多用到的自己写的函数,自己写起来真的不方便,很麻烦,希望各位发扬共享精神,呵呵~
作者:
ltsi001
时间:
2011-12-12 19:13
原来是高人,我因矣,沙发?
作者:
我就喜欢呵呵呵
时间:
2011-12-12 19:18
回复
2楼
ltsi001
的帖子
:share:
互勉互勉,互相学习~
作者:
loading
时间:
2011-12-12 20:38
恩,不错,需要。
作者:
m13754891441
时间:
2011-12-12 21:18
原来是高人
作者:
yangfusheng
时间:
2013-11-24 17:48
爱回帖爱积分,爱TC!!!!!!
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1