回 帖 发 新 帖 刷新版面

主题:[原创]下标越界?

Private Sub MSC_OnComm()
Select Case MSC.CommEvent
       Case comEvReceive
        Do
         buf = MSC.Input
         T = T + 1
         If T > 10000 Then Exit Do
       Loop Until (Left(buf, 1) = "=" And Len(buf) = 9)                                     
                                ‘保证buf是一个以  “=“开始的 9位数据,用do…loop进行循环等待。

ReDim ary(Len(buf))                              
        For i = 1 To Len(buf)
        ary(i - 1) = Mid(buf, i, 1)
        Next                                       ‘将buf重新定义为数组型
     [color=FF0000]If ary(Len(buf) - 1) = "-" Then              [/color]‘判断buf的最高位是否为“-“
        For i = 0 To Len(buf) - 1
        buf1 = buf1 + ary(i)
        Next
        txtReceive1.Text = buf1              ‘如果为“-”,将赋值给txtReceive1.Text
        buf1 = ""
     Else
        For i = 0 To Len(buf) - 1
        buf1 = buf1 + ary(i)
        Next
        txtReceive2.Text = buf1                   ‘否则将赋值给txtReceive2.Text
        buf1 = ""
    End If
     Case comEvSend
End Select
End Sub

为什么在运行时,有的时候正常,有的时候在If ary(Len(buf) - 1) = "-" Then  这一句会出现错误提示:下标越界,

真的不知哪儿错了,想请高手帮帮忙!

回复列表 (共17个回复)

11 楼

误以为

嗯,误以为.
拜托,你以为在谈恋爱啊,
我还以为我是天生爱情狂呢.

12 楼

谢谢10楼和11楼的两位!我已经解决了!

13 楼

搞了半天,你还是没明白,给你说是这个条件没写好啊:
If T > 10000 Then Exit Do

看了你前面的帖子,好象你连很多基础的东西都没搞清楚,为什么来就写串口通讯,没什么好处

这个“下标越界”还真是你“原创出来”的哈!

14 楼

你所有的贴子都问同一个程序里的问题!
你是不是还在大学念书的,学什么计算机控制、自动化之类的东东?

15 楼

就是呀,你还不明白呀,我都已经解决了

16 楼

问一个不是同一个程序的问题!
      文本框中的文本怎么由右向左来写?

17 楼

搂主,怎么解决的,将你的解决方法张贴出来供大家学习学习

我来回复

您尚未登录,请登录后再回复。点此登录或注册