我从串口接收一组变长的字符串,一分钟一次,因为是变长的,所以我不知道每一次字符串接收的长度,请问我要怎样才能在 Do Until MSComm1.InBufferCount >= X  '查询方式,等 ′待接收到X个字节
        DoEvents
   Loop
这个代码中设置X的值呢
或者每接收一次清空一次接收缓冲区,我用MSComm1.InBufferCount = 0, MSComm1.InputLen = 0,但都没有用,请大家帮忙看看,谢谢

解决方案 »

  1.   

    没有太好的办法。一个方案是:1 采用 OnComm 事件触发的方法,设置 RThreshold = 1,每收到至少一个字符时触发事件。
    2 设置 InputLen = 1,每次从 Input 读取一个字节。读取后如果 InBufferCount > 0 继续读取。
    3 每次读取后,如果 InBufferCount = 0,设置延迟(根据你的波特率)等待后续字节。如果超时则结束接收,等待下一次事件。