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

VB编程中上标越界

2012-12-24 
VB编程中下标越界我的代码是这样子的:Dim ab(9) As ByteDim av As VariantPrivate Sub MSComm1_OnComm()Wi

VB编程中下标越界
我的代码是这样子的:
Dim ab(9) As Byte
Dim av As Variant

Private Sub MSComm1_OnComm()
  With MSComm1
    Select Case .CommEvent
      Case comEvReceive
         av = .Input
         ab(0) = av(0)
         If ab(0) = &H2 Then
            .RThreshold = 0
            
            av = .Input
            ab(1) = av(0)
            av = .Input
            ab(2) = av(0)
            av = .Input
            ab(3) = av(0)
            av = .Input
            ab(4) = av(0)
            av = .Input
            ab(5) = av(0)
            av = .Input
            ab(6) = av(0)
            av = .Input
            ab(7) = av(0)
            av = .Input
            ab(8) = av(0)   //到这里就出现av(0)下标越界的问题。

   我逐步调试的时候不会出现这个问题,我运行的时候就出现这个问题了。请各位高手指教。我的代码是这样子的:
Dim ab(9) As Byte
Dim av As Variant

Private Sub MSComm1_OnComm()
  With MSComm1
    Select Case .CommEvent
      Case comEvReceive
         av = .Input
         ab(0) = av(0)
         If ab(0) = &H2 Then
            .RThreshold = 0
            
            av = .Input
            ab(1) = av(0)
            av = .Input
            ab(2) = av(0)
            av = .Input
            ab(3) = av(0)
            av = .Input
            ab(4) = av(0)
            av = .Input


            ab(5) = av(0)
            av = .Input
            ab(6) = av(0)
            av = .Input
            ab(7) = av(0)
            av = .Input
            ab(8) = av(0)   //到这里就出现av(0)下标越界的问题。

   我逐步调试的时候不会出现这个问题,我运行的时候就出现这个问题了。请各位高手指教。
我发送的数据是用串口调试助手按十六进制发送的,内容是:02 51 2C 30 30 31 2E 32 2C 30 30 39 2E 36 32 32 2C 2B 30 30 30 2E 32 38 38 2C 4D 2C 30 30 2C 03 31 37 0D 0A
[最优解释]

引用:
初始为1.当接收到第一个数据后,就设为0了。

初始为1,一般主板的RS232硬件在一次OnComm事件中能收到8字节的数据,而LZ
Dim ab(9) As Byte
是定义了10个的字节数组,所以在
ab(8) = av(0) 时出现av(0)下标越界的问题。
[其他解释]
http://download.csdn.net/source/1262066
[其他解释]
不知道LZ初始RThreshold 为多少?

[其他解释]
初始为1.当接收到第一个数据后,就设为0了。
[其他解释]
可以接受超过8个字节的数据,问题我已经解决了。还是要谢谢你,有机会交个朋友。向你学习VB编程。我的QQ是415104047。
[其他解释]
超范围
[其他解释]
我也不会啊,能指教一下吗

热点排行