关于串口调试显示下标越界
--------------------编程问答-------------------- OnCOMM事件触发的并不一定是数据到达事件,有时候buffData是个空数组 --------------------编程问答-------------------- UBound 函数好象对空数组无效 --------------------编程问答-------------------- 这个一个 传输数据 寻找 字头的 总是告诉我 下标越界 不过 有的时候 还可能 运行成功 搞不清楚了??? --------------------编程问答-------------------- 条件成立的话i无限地增加下去肯定不行 --------------------编程问答-------------------- 你是说 buffData 可能 是一个 空数组 也就是说 我要等一会 等 数据进去了 在运行程序是吗 --------------------编程问答-------------------- 对i是有定义的啊 i > (UBound(buffData) - 1 就跳出的啊 --------------------编程问答-------------------- 这是个双重循环我说的是里面那个
--------------------编程问答-------------------- 那我 修改哪里好呢 --------------------编程问答-------------------- 你是说 那个C 有可能 不能计算了 是吧 这里怎么改好呢 --------------------编程问答-------------------- 调试出错的时候鼠标指到i或c上就可以看到其数值,由此判断是上限还是下限出问题了 --------------------编程问答--------------------
'This loop looks for the header in the data--------------------编程问答-------------------- http://download.csdn.net/source/1262066 --------------------编程问答-------------------- 用 MSComm1.InBufferSize 来判断是否真的有数据过来了 --------------------编程问答-------------------- UBound 函数对空数组无效的,用UBound(Array)的办法来读空数组大小无效
Do Until ((c > 7) Or (i > (UBound(buffData) - 1)))
c = 1
i = i + 1
If c <= 7 And (i <= UBound(buffData) - 1) Then '加上条件
While (headerString(c) = buffData(i))
c = c + 1
i = i + 1
Wend
End If
Loop
用读 MSComm1.InBufferSize 来看缓冲区内是不是真的有数据内容了
补充:VB , 控件