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

VB 2组数据 按时刻对齐的问题!请指教,谢谢

A.txt文件:
序号 A_time 湿度
11 15:00:30:003.297 50.3
12 15:00:30:023.190 50.5
13 15:00:30:043.310 50.7
14 15:00:30:065.265 50.9
15 15:00:30:083.393 50.9
16 15:00:30:103.573 63.8
17 15:00:30:123.506 63.9
18 15:00:30:143.554 64.1
19 15:00:30:163.635 64.3
20 15:00:30:183.674 67.4
21 15:00:30:203.854 68.5
22 15:00:30:223.795 69.9
23 15:00:30:243.843 70.4
24 15:00:30:263.920 71.6
25 15:00:30:283.982 72.3
26 15:00:30:304.162 73.6
27 15:00:30:324.082 73.8
28 15:00:30:344.164 74.9
29 15:00:30:364.272 74.5
30 15:00:30:384.274 79.0

B.txt文件:
Number B_time 压力
2219 15:00:30.100 144.354
2220 15:00:30.200 155.45
2221 15:00:30.300 178.22
2222 15:00:30.400 188.21
2223 15:00:30.500 200.33

要求根据时间将两组数据对齐输出:
C.txt文件
A_time B_time 压力 湿度
15:00:30.100 15:00:30:103.573 144.354 63.8
15:00:30.200 15:00:30:203.854 155.45 68.5
15:00:30.300 15:00:30:304.162 178.22 73.6

目前将A B文件的各列数据均存入了数组中:
Dim A1(),A2(),A3(),B1(),B2(),B3(),C1(),C2(),C3(),C4() As String
A1-序号 A2-A_time A3-湿度
B1-Number B2-B_time B3-压力
C1-A_time C2-B_time C3-压力 C4-湿度


请问,如何根据A2() B2() 中存储的时间数据,将2组数据合并后输出到C文件呢?请指教,能给出具体代码最好了,非常感谢! --------------------编程问答-------------------- --------------------编程问答-------------------- of123您好,您可能没看仔细要求,A文件每行之间的时间间隔是20ms,B文件的时间间隔是100ms。
是要将时间对齐起来,即A文件的15:00:30.100  所在行 与B文件的15:00:30:103.573 所在行对应起来,即根据时间对应。
由于考虑文件中可能存在时间的断点,即不一定是连续的时间,即还不好按照固定间隔来对齐,我的思路是能否将A_Time B_Time 进行比较,根据两者差值来判断这两行是否是对应的。不知这样能实现的不?考虑行数较多,请指教。谢谢! --------------------编程问答-------------------- 补充描述一下问题,上面没说上重点的:有2列时间数据如下:
A列:
15:00:30:023.190
15:00:30:043.310
15:00:30:065.265
15:00:30:083.393
15:00:30:103.573
15:00:30:123.506
15:00:30:143.554
15:00:30:163.635
15:00:30:183.674
15:00:30:203.854
15:00:30:223.795
15:00:30:243.843
15:00:30:263.920
15:00:30:283.982
15:00:30:304.162
15:00:30:324.082
15:00:30:344.164
15:00:30:364.272
15:00:30:384.274

B列时间:
15:00:29.800
15:00:29.900
15:00:30.000
15:00:30.100
15:00:30.200
15:00:30.300
15:00:30.400
15:00:30.500

如何将A列与B列按时间对应起来然后输出呢?能给出具体代码最好了,谢谢!

输出C文件:
15:00:30.100 15:00:30:103.573
15:00:30.200 15:00:30:203.854
15:00:30.300 15:00:30:304.162 --------------------编程问答-------------------- 为什么不将数据都存入数据库中?只需要按时间先后排序查询就可以了。多方便? --------------------编程问答-------------------- 将数据导入数组,然后对齐,主要是为了后续的计算,输出计算结果即可,并不仅仅是把数据重排存储的。 --------------------编程问答-------------------- --------------------编程问答-------------------- 不对了,B 数组中,有些记录是在 A 中没有对应的。


Open "c.txt" For Output As #1

For i = Lbound(B1) To Ubound(B1)
  For j = Lbound(A1) To Ubound(A1)
    If Left(A2(j), 11) = Left(B2(i), 11) Then
      Print #1, B2(i) & " " & A2(j) & " " & B3(i) & " " & A3(j)
    End If
  Next j
Next i

Close #1
--------------------编程问答-------------------- 嗯的,应该先判断B1(0)与A1(0)的先后关系的,若B1(0)比A1(0)早,那就需要判断B1(1)与A1(0)的关系的,依次类推,知道B1(i)比A1(0)晚,就可以开始循环了。具体如何判断呢?请指教,谢谢!
补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,