|
马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如题,许多人说,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版本,请将函数定义放在函数调用之前,这个是因为目前内测版本数组功能还未完全做好,各位使用时注意~
同时,希望有人能拿出自己平时多用到的自己写的函数,自己写起来真的不方便,很麻烦,希望各位发扬共享精神,呵呵~
|
|