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

数据截取问题

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

Option Explicit

Private 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

我的数据不是给定的,而是实时传输的,传输是一行一行进行传输,但是数据的格式是给定的,我想上面的程序应该不适用的吧!我应该要用数组来存放吗?
如数据传输的部分信息如下所示:

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
请大虾给指明思路呀! 本帖最后由 bcrun 于 2012-02-29 21:46:27 编辑
引用 2 楼 alice07026124 的回复:
我的数据不是给定的,而是实时传输的,传输是一行一行进行传输,但是数据的格式是给定的,我想上面的程序应该不适用的吧!我应该要用数组来存放吗?
如数据传输的部分信息如下所示:

20120119 132419 150.00 D
20120119 132429 008.00 D
20120119 132439 001.20 D
我分别提取每行的日期,时间,计数三类信息
最终显示结果为
……

你这前面是8位啊
数据拿到了,每行都看做一个字符串s,那么
left$(s,8)就是前6为的日期字符串
mid$(s,10,15)就是时间, 
mid$(s,17,22)就是数值.

但是看到你的数据特别严格的对齐和分割,直接分割字符串吧,不必用位数查找
dim a()
a = split(s,' ')这样a就是个4个元素的数组,每个元素都是字符串,分别是日期,时间,数值和最后的'D'
你只需要处理前3个元素即可 非常感谢各位的指点!自学VB才刚开始,以后有问题会经常来提问的,各位多多帮忙指点哦!呵呵~~
补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,