注册 登录
编程论坛 VB6论坛

新手求助对比时遇到空值时出错

fcxk2016 发布于 2016-10-02 02:38, 813 次点击
Dim v1, v2
 Dim l&, m&
 v1 = Split(Text1.Text, vbCrLf)
 v2 = Split(Text2.Text, vbCrLf)
 l = IIf(UBound(v1) > UBound(v2), UBound(v1), UBound(v2))
 For m = LBound(v1) To l
 If CStr(v1(m)) <> CStr(v2(m)) Then Text3.Text = Text3.Text & v1(m) & vbCrLf
 Next m
End Sub

对比时遇到空值时会错误,新手请教处理方法:
如:
text1内容
1
2
3  
text2内容   
1
2

提示越界
1 回复
#2
xiangyue05102016-10-02 12:34
split对字符串进行拆分的时候容易出现空字符的情况。
建议再定义两个动态数组,存放v1,v2处理过的内容,这样不会出错
给你一段例子(代码顺手写的,可能有点小错误)。你自己研究一下
Dim vv1()
 v1 = Split(Text1.Text, vbCrLf)
 k=0
 for i= lbound(v1) to ubound(v1)
  if trim(v1(i))<>"" then
    redim preserve vv1(k)  'preserve 记得不能少了
    vv1(k)=v1(i)
    k=k+1
  Endif
 Next i
1