当前位置:编程学习 > VB >>

关于串口调试显示下标越界

--------------------编程问答-------------------- OnCOMM事件触发的并不一定是数据到达事件,有时候buffData是个空数组 --------------------编程问答-------------------- UBound 函数好象对空数组无效 --------------------编程问答-------------------- 这个一个 传输数据 寻找 字头的 总是告诉我 下标越界 不过 有的时候 还可能 运行成功 搞不清楚了??? --------------------编程问答-------------------- 条件成立的话i无限地增加下去肯定不行 --------------------编程问答-------------------- 你是说 buffData 可能 是一个 空数组 也就是说 我要等一会 等 数据进去了 在运行程序是吗 --------------------编程问答-------------------- 对i是有定义的啊 i > (UBound(buffData) - 1 就跳出的啊 --------------------编程问答-------------------- 这是个双重循环
我说的是里面那个

引用 6 楼 tusijiaibeini 的回复:
对i是有定义的啊 i > (UBound(buffData) - 1 就跳出的啊
--------------------编程问答-------------------- 那我 修改哪里好呢 --------------------编程问答-------------------- 你是说 那个C 有可能 不能计算了 是吧 这里怎么改好呢 
引用 7 楼 dbcontrols 的回复:
这是个双重循环
我说的是里面那个

引用 6 楼 tusijiaibeini 的回复:
对i是有定义的啊 i > (UBound(buffData) - 1 就跳出的啊
--------------------编程问答-------------------- 调试出错的时候鼠标指到i或c上就可以看到其数值,由此判断是上限还是下限出问题了 --------------------编程问答--------------------
    'This loop looks for the header in the data
    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
--------------------编程问答-------------------- http://download.csdn.net/source/1262066 --------------------编程问答-------------------- 用 MSComm1.InBufferSize 来判断是否真的有数据过来了 --------------------编程问答-------------------- UBound 函数对空数组无效的,用UBound(Array)的办法来读空数组大小无效
用读 MSComm1.InBufferSize 来看缓冲区内是不是真的有数据内容了
补充:VB ,  控件
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,