当前位置: 代码迷 >> PB >> 从指定字符失去数量及值
  详细解决方案

从指定字符失去数量及值

热度:69   发布时间:2016-04-29 06:52:20.0
从指定字符得到数量及值

源数据“192.168;192.168.3;”,得到的数量及192.168与192.168.3

------解决方案--------------------
很吃惊会有这样的问题,不知道理解的对不对,写个函数TotalText方便调用
//====================================================================
// 事件: TotalText
//--------------------------------
// 描述:在字符串Str1中统计字符串Str2个数
//--------------------------------
// 参数:
//  string str1 源字符串
//  string str2 要统计的字符串
//====================================================================

int li_m,li_n,li_count =0
li_m=1
li_n=gnv_str.uf_pos(str1,str2,li_m)
Do While li_n>0
li_count++
li_m=li_n+gnv_str.uf_len(str2)
li_n=gnv_str.uf_pos(str1,str2,li_m)
Loop
return li_count


调用函数:
//====================================================================
// 事件: TotalText
//--------------------------------
// 描述:在字符串Str1中统计字符串Str2个数
//--------------------------------
// 参数:
//  string str1 源字符串
//  string str2 要统计的字符串
//====================================================================

int li_m,li_n,li_count =0
li_m=1
li_n=gnv_str.uf_pos(str1,str2,li_m)
Do While li_n>0
li_count++
li_m=li_n+gnv_str.uf_len(str2)
li_n=gnv_str.uf_pos(str1,str2,li_m)
Loop
return li_count

------解决方案--------------------
函数调用粘错了,应该是:
string ls_str
int li_count
ls_str="192.168;192.168.3;"
li_count=totalText(ls_str,"192.168")
messagebox("提示",li_count)
li_count=totalText(ls_str,"192.168.3")
messagebox("提示",li_count)

------解决方案--------------------
那都是一样的
------解决方案--------------------
楼主需要给定,字符串的分隔符
如你所述,有小写的分号,大写的分号,还有其他的吗?
只要循环字符串,就可以解决问题的啊
------解决方案--------------------
我的意思是你要写一个函数,然后调用函数。
------解决方案--------------------
哦,原来是误解你的意思了。
下面的函数是将一个字符串根据分隔符拆分到数组里,然后你自己再循环处理一下数组就行了

//====================================================================
// 事件: .getarrayto()
//--------------------------------
// 描述:根据提供的分隔符将字符串分割到指定的字符串数组
//--------------------------------
// 参数:
//         string data   要分割的字符串
//         string sign   分隔符
//  ref    string as_array[] 指定的字符串数组
//--------------------------------
// 返回:  integer 返回数组的上限
//--------------------------------
// 类型:  字符串函数
//====================================================================
Int li_pos = 1,li_find,li_len,li_index = 0
String ls_value,ls_item[]
If Len(Data) = 0 Then Return 0
//分隔符长度
li_len = len(Sign)
//循环分割
li_find = pos(Data,Sign,1)
Do While li_find > 0
li_index++
ls_value = mid(Data,li_pos,li_find -li_pos)
ls_item[li_index] = ls_value
  相关解决方案