首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB6.0:请问计算动态数组内元数个数不准确有关问题

2012-05-24 
VB6.0:请教计算动态数组内元数个数不准确问题VB codePrivate Sub Command1_Click()Dim s() As String, a A

VB6.0:请教计算动态数组内元数个数不准确问题

VB code
Private Sub Command1_Click()Dim s() As String, a As Integer, b As Integer s = Split(Text1.Text, "_") '你输入的数值已存入数组s a = UBound(s) b = LBound(s) Text2.Text = a - b + 1 End Sub


测试结果是:
如果输入:1_1_1 结果是:3(此项正确)
如果输入:_1_1_1_ 结果是:5
如果输入:1_1_1_ 结果是:4

因为我输入的数据比较严格,怕此方法会带来漏洞,请问这个问题怎么解决呀?或者有什么更好的方法?

烦请,谢谢了。

[解决办法]
VB code
Private Sub Command1_Click()Dim s() As String, a As Integer, b As Integer    If (Left(Text1.Text, 1)) = "_" Then Text1.Text = Right(Text1.Text, Len(Text1.Text) - 1)    If (Right(Text1.Text, 1)) = "_" Then Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)    s = Split(Text1.Text, "_") '你输入的数值已存入数组s    a = UBound(s)    b = LBound(s)    Text2.Text = a - b + 1End Sub
[解决办法]
If (Left(Text1.Text, 1)) = "_" Then Text1.Text = Right(Text1.Text, Len(Text1.Text) - 1)
If (Right(Text1.Text, 1)) = "_" Then Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)

去掉就好了
[解决办法]
必须对每项进行检查,如果
trim(s(i))=""的项目必须去除
[解决办法]
测试结果是:
如果输入:
如果输入:_1_1_1_ 结果是:5
如果输入:1_1_1_ 结果是:4

完全正确

1_1_1 结果是:3 这个没什么可说的

_1_1_1_ 是前后各有一个空字符串

1_1_1_ 是在最后有一个空字符串

你只要想办法先去掉前后无用的_就可以了

热点排行