ASP之Split将字符串转换为数组正确获取数组下标值

来源:互联网 发布:上海哥瑞利软件 编辑:程序博客网 时间:2024/06/05 04:09

  将数据使用间隔字符串存储可以减少少写几个数据库字段,也方便以后对扩展数据。

    比如:在论坛中用户的性格有多重性格、乐天达观、成熟稳重、幼稚调皮、温柔体贴等等,他们分别对应的值为0、1、2、3、4,在存储这些数据时使用间隔字符串,将数据存储到一个文本字段中。数据存储格式为:0|2|3|4|。

    而在使用间隔字符串分隔各项数据时,0|2|3|4|0|2|3|4在使用Split函数对其进行分隔的时候产生的数组最大下标值是不同的,往往在不注意的时候会在最右侧多写一个间隔字符。这样在输出的时候就会多遍历一个数据,为了避免这种情况的发生,就要对字符串进行检测。

   思路:

    1.检测右侧是否存在间隔字符串,如果存在则需要将数组最大下标值减一

    2.如果不存在则直接返回原数组最大下标

   代码:

Dim TempStr,TempArr,TempItem
TempStr
="第一项1|第二项1|第三项|"
TempArr
=Split(TempStr,"|")
Response.Write TempStr
&"<br />"
For TempItem=0 To UBoundStrToArr(TempStr,UBound(TempArr),"|")
    Response.Write TempArr(TempItem)
&"<br />"
Next
'*************************
'
函数:UBoundStrToArr
'
作用:检测原字符串转换为数组的最大下标值
'
参数:cCheckStr(需要检测的字符串)
'
      cUBoundArr(生成数组的最大下标值)
'
      cSpaceStr(间隔字符串)
'
返回:数组的最大下标值
'
************************
Public Function UBoundStrToArr(ByVal cCheckStr,ByVal cUBoundArr,ByVal cSpaceStr)
    
If Instr(cCheckStr,cSpaceStr)=0 Then
        UBoundStrToArr
=cUBoundArr
        
Exit Function
    
End If
    
Dim TempSpaceStr,UBoundValue
    TempSpaceStr
=Mid(cCheckStr,Len(cCheckStr)-Len(cSpaceStr)+1'获取字符串右侧间隔字符
    If TempSpaceStr=cSpaceStr Then '如果字符串最右侧存在间隔字符,则下标值需要-1
        UBoundValue=cUBoundArr-1
    
Else
        UBoundValue
=cUBoundArr
    
End If
    UBoundStrToArr
=UBoundValue
End Function
原创粉丝点击