各位大虾,如何截取从通讯板中传输的所需信息,信息是有规律的:前面6位数是日期+中间6位数为时间+最后6位数为测量值+D为结束符,怎么实现实时读取并分别提取日期/时间/测量值在窗体中显示。思路是怎么样的?最好能够详细说明语法,提供相关实例最好,谢谢各位大虾!

解决方案 »

  1.   


    Option ExplicitPrivate Sub Command1_Click()
        Dim strData As String
        strData = "120202161330000015*" '假使结束符是:*
        Debug.Print Mid(strData, 1, 6)  '日期
        Debug.Print Mid(strData, 7, 6)  '时间
        Debug.Print Mid(strData, 13, 6)  '数据
    End Sub
      

  2.   

    我的数据不是给定的,而是实时传输的,传输是一行一行进行传输,但是数据的格式是给定的,我想上面的程序应该不适用的吧!我应该要用数组来存放吗?
    如数据传输的部分信息如下所示:20120119 132419 150.00 D
    20120119 132429 008.00 D
    20120119 132439 001.20 D
    我分别提取每行的日期,时间,计数三类信息
    最终显示结果为
    测量日期      测量时间    计数
    2012/01/19  13:24:19  150.00
    2012/01/19  13:24:29  008.00
    请大虾给指明思路呀!
      

  3.   

    本帖最后由 bcrun 于 2012-02-29 21:46:27 编辑
      

  4.   

    你这前面是8位啊
    数据拿到了,每行都看做一个字符串s,那么
    left$(s,8)就是前6为的日期字符串
    mid$(s,10,15)就是时间, 
    mid$(s,17,22)就是数值.但是看到你的数据特别严格的对齐和分割,直接分割字符串吧,不必用位数查找
    dim a()
    a = split(s,' ')这样a就是个4个元素的数组,每个元素都是字符串,分别是日期,时间,数值和最后的'D'
    你只需要处理前3个元素即可