将数据使用间隔字符串存储可以减少少写几个数据库字段,也方便以后扩展数据。
如:在论坛中用户的性格有多重性格、乐天达观、成熟稳重、幼稚调皮、温柔体贴等等,他们分别对应的值为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
来源:http://blog.csdn.net/lingyun410