回 帖 发 新 帖 刷新版面

主题:[求助]VB2005读入文本文件数据问题

我的数据格式是这样的
-22    -17.7    -25.9    909.1    1.8    78    0    145.24
-26.7    -20.2    -29.6    910.5    3    77    0    314.25
-26.4    -18.8    -31.7    907.5    2.3    75    0    220.58
-25.9    -19    -31.6    910.6    1.8    76    0    317.33
-21.2    -14.2    -26.2    911.6    4.5    78    0    308.35
-21.8    -16.7    -25.7    912.3    4.3    79    0    320.86
-18.7    -11    -23    909.5    3.3    79    0    322.79
-18.7    -12.9    -22.2    908.1    4    77    0    216.06
-17.8    -14.1    -19.6    909.6    5.3    73    0    156.17
-16.9    -13.4    -21.8    907.7    5    75    0.6    230.01
-15    -10.3    -18.6    905.2    5.8    73    0    253.87
-17.5    -12.4    -22    905.2    2.3    78    0    222.2
-21    -15    -26.8    904.6    1.3    74    0    257.72
-22.9    -18.4    -27.4    905.9    4.3    73    0.1    225.68
-24.1    -16.7    -28.6    914.5    3    73    0    342.06
-23    -15.8    -29.9    913.6    3.3    76    0    287.17
八列,列之间都用一个空格分开,存在文本文件里,我想请问下在VS2005里怎么把这八列数据读入八个对应的数组里呢?

回复列表 (共4个回复)

沙发

这是VB组,所以我只会用VB的:
1.先把数据读入到一个文本框,然后:

Dim dat(19, 7) As Single, st1() As String, st2() As String '假设有20行8列数据
Dim i As Integer, j As Integer
st1 = Split(Text1, vbCrLf)
For i = 0 To UBound(st1)
  st2 = Split(st1(i), " ")
  For j = 0 To UBound(st2): dat(i, j) = Val(st2(j)): Next
Next


2.直接从文本文件中读:

Dim dat(19, 7) As Single, st() As String '假设有20行8列数据
Dim z As String, i As Integer, j As Integer

Open fName For Input As #1
Do Until EOF(1)
  Line Input #1, z
  st = Split(z, " ")
  For j = 0 To 7: dat(i, j) = Val(st(j)): Next
  i = i + 1
Loop
Close #1

板凳

哇 谢谢一江秋水的回答 
我已经将数据读出来了,还有个小问题是dat(i,j)里每一列的数据我需要单独存到一个一维数组里,我这样写
        For i = 0 To UBound(strLine)          '从头到底,几个数据都一样 
            strLine2 = Split(strLine(i), vbTab)  '将strLine的每个元素按照Tab分隔,strLine2中的每个元素为每行里的一个数
            For j = 0 To UBound(strLine2)
                dat(i, j) = Val(strLine2(j))           
                  td(j) = dat(i, 0)‘  提示错误 :未将对象引用设置到对象的实例。  
            Next
        Next
请问这个错误什么意思?

3 楼

C易特元亨QQ919169870
最新互助式项目。
这是一个互助的模式。
不推广人也有钱赚的。分A B两个网。
不推广的人在A网。推广的人 在B网。
B网推广的人帮助A网。
A网赚取6000元出局。
B网就多了。
详情了解加QQ919169870 
  http://blog.sina.com.cn/s/blog_6b19ec920100liv6.html
C易特奖励制度 
http://blog.sina.com.cn/cyite6
C易特更多资料博客

4 楼

C易特元亨QQ919169870
最新互助式项目。
这是一个互助的模式。
不推广人也有钱赚的。分A B两个网。
不推广的人在A网。推广的人 在B网。
B网推广的人帮助A网。
A网赚取6000元出局。
B网就多了。
详情了解加QQ919169870 
  http://blog.sina.com.cn/s/blog_6b19ec920100liv6.html
C易特奖励制度 
http://blog.sina.com.cn/cyite6
C易特更多资料博客

我来回复

您尚未登录,请登录后再回复。点此登录或注册