VB6.0 如何将TXT 数据存入数组 TXT文件有一些仿真数据,如下:

1.000000 1.4847144 1.5984666 2.666655 1487.256666
1.568888 1.5233354 2.2144444 3.111111 1524.222211
。。。 。。。 。。。 。。。 。。。

1:每列之间的间隔不同,有的相隔五个字符,有的相隔3个
2:每个数据长度也不一
问题1:如何用VB6.0编写程序,读取和上述类似的TXT文件,并将里面的数据存入数组里;
问题2:本人最终希望能将以上TXT里面的数据分列存入EXCEL文件里,并且给每列数据定义,EXCEL里面显示如下:
时间 直流电压 直流电流 一次侧电压 一次侧电流
1.0000 1.57111 2.4515 1452.111 1.235444
在EXCEL里一定要分列的格式,一般都默认一个单元格存入一行数据。并且要做到给每列数据定义,比如时间,直流电压, 这些在原本TXT文件里都没有,请问如何做到。
最好给出程序的同时,能对程序关键部分加以解释。本人刚学VB,很多地方不是很明白,麻烦各位VB达人拉

将文本内容复制,到EXCEL里粘贴,数据菜单分列,选项:空格,连续分隔符视为单个处理。
这样就是你要的最终结果。

----
VB编程思路:
1,将文本内容读取STR变量,行以回车符分隔。
2,把两个空隔替换成一个,replace(str," "," ")循环直到没双空格
3,数组strA=split(str,vbcr)这样得到行数据strA(i)。
strB=split(str(i)," ") 可以得到strB数组,就是每一行的分裂数据。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-16
Dim a() As String, tem As String
Dim i As Integer
'运行之前请在"工程-引用"将 "Microsoft Excel 12.0 Object Library" 打钩
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim j As Integer
Private Sub Command1_Click()
'xlApp.NewWorkbook.Add ("E:\1.xls")
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open("E:\1.xls") '假设你的目标Excel在E盘
xlBook.Sheets("sheet1").Range("A1") = "时间"
xlBook.Sheets("sheet1").Range("B1") = "直流电压"
xlBook.Sheets("sheet1").Range("C1") = "直流电流"
xlBook.Sheets("sheet1").Range("D1") = "一次侧电压"
xlBook.Sheets("sheet1").Range("E1") = "一次侧电流 "
Open "E:\1.txt" For Input As #1 '假设你的源数据文本在E盘
k = 2
Do While Not EOF(1)
Line Input #1, tem

a() = Split(tem, " ")
For i = 0 To UBound(a)
a(i) = Trim(a(i))
If a(i) <> "" Then

xlBook.Sheets("sheet1").Range(Chr(Asc("A") + j) & k) = "'" & a(i)
j = j + 1
If j = 5 Then j = 0
End If
Next
k = k + 1
Loop
Close #1
xlBook.Save
xlBook.Close '关闭excel工作簿
Set xlApp = Nothing '释放excel程序
End Sub追问

非常感谢您的回答,小弟已经按照您的方案试过了,很符合要求。
小弟我还想加问一个问题。如果我想用VB 控制EXCEL 画图 比如 我想选取第一列还有第二列数据 一个为X轴 一个为Y轴 画出二维XY散点图 请问如何实现呢 万分感谢

追答

你要先把散点图在excel上加好,然后就可以通过VB来控制图的源数据:
XlBook.Sheets("sheet1").ChartObjects(1).Chart.SeriesCollection(1).Values = WorksheetsSheets("sheet1").Range("A1:B6" )

本回答被提问者采纳
第2个回答  2013-01-16

    这个问题不难,就是有点烦而已!

相似回答