使用VB读取文本中的数据
文本中的数据是下面形式48.641188.543831E-0349.06816.026399849.949915.710701E-0252.20577.113473655...
文本中的数据是下面形式
48.64118 8.543831E-03
49.06816 .0263998
49.94991 5.710701E-02
52.20577 .1134736
55.61559 .193804
59.32556 .312174
63.27519 .4525032
67.78375 .6236889
72.01213 .8197424
74.34309 1.028989
74.39476 1.252174
72.67766 1.500091
请问使用VB6如何编程能把两列数据读取到对应的两个数组a()和b()中,最好能使得数组中的内容直接编程可以使用的数,而不是字符串。
我就是按照你说的那样定义a和b数组都是Single类型的啊,经过反复测试打印的时候是Print a(j); " "; b(j) 则显示字符串(有字母E打印出来)改成Print Val(a(j)); " "; Val(b(j))就打印出来数值啦。
不过总算弄出来了,谢谢啊!分数如数奉送! 展开
48.64118 8.543831E-03
49.06816 .0263998
49.94991 5.710701E-02
52.20577 .1134736
55.61559 .193804
59.32556 .312174
63.27519 .4525032
67.78375 .6236889
72.01213 .8197424
74.34309 1.028989
74.39476 1.252174
72.67766 1.500091
请问使用VB6如何编程能把两列数据读取到对应的两个数组a()和b()中,最好能使得数组中的内容直接编程可以使用的数,而不是字符串。
我就是按照你说的那样定义a和b数组都是Single类型的啊,经过反复测试打印的时候是Print a(j); " "; b(j) 则显示字符串(有字母E打印出来)改成Print Val(a(j)); " "; Val(b(j))就打印出来数值啦。
不过总算弄出来了,谢谢啊!分数如数奉送! 展开
3个回答
展开全部
Private Sub Command1_Click()
Dim a() As Single, b() As Single '定义动态数组
Dim d() As String
i = 0
Open App.Path & "\suju.txt" For Input As #1 '打开文件
Do While Not EOF(1) '读数据循环
ReDim Preserve a(i) '指定数组个数,Preserve关键字是保留数组数据
ReDim Preserve b(i)
Line Input #1, c$ '读数据,赋给字符串c
c = LTrim(c) '去除前面空格
d = Split(c, " ") '把c拆成数组,赋给d数组,以空格为分隔符
a(i) = Val(d(0)) '把d数据赋给数组a(),b()
j = 1 '处理两个数据之间多个空格的问题
Do While d(j) = ""
j = j + 1
Loop
b(i) = Val(d(j))
i = i + 1 '把数组a b的个数加1
Loop
Close '关闭文件
For j = 0 To i - 1 '打印出来,校对一下,是不是正确
Print a(j); " "; b(j)
Next
End Sub
这说明你的数据的最前面是空格.
呵呵,是搞错了,
现在改了,你试试
你定义的数组的类型是什么呢?
Dim a() As Single, b() As Single '定义动态数组
Dim d() As String
i = 0
Open App.Path & "\suju.txt" For Input As #1 '打开文件
Do While Not EOF(1) '读数据循环
ReDim Preserve a(i) '指定数组个数,Preserve关键字是保留数组数据
ReDim Preserve b(i)
Line Input #1, c$ '读数据,赋给字符串c
c = LTrim(c) '去除前面空格
d = Split(c, " ") '把c拆成数组,赋给d数组,以空格为分隔符
a(i) = Val(d(0)) '把d数据赋给数组a(),b()
j = 1 '处理两个数据之间多个空格的问题
Do While d(j) = ""
j = j + 1
Loop
b(i) = Val(d(j))
i = i + 1 '把数组a b的个数加1
Loop
Close '关闭文件
For j = 0 To i - 1 '打印出来,校对一下,是不是正确
Print a(j); " "; b(j)
Next
End Sub
这说明你的数据的最前面是空格.
呵呵,是搞错了,
现在改了,你试试
你定义的数组的类型是什么呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询