txt 中数据如下
5,273. 5615 ,50575. 215 ,5111. 594
5421. 235 ,5257. 232 ,117. 4712
275. 1327 ,51. 794
211. 3505 ,66. 781
144. 3541 ,123. 898
208. 5307 ,146. 298
263. 3342 ,0
(上面数据最后一样最后一个必为0,第一行赋给n, ta, xa, ya,第二行赋给xb, yb, tb
,由第三行至n行赋给数组b(v), s(v))
请问怎样将每个数据读取给程序中的变量n, ta, xa, ya, xb, yb, tb
及数组b(v), s(v)
越简单越好!!!
用Input #1, n, ta, xa, ya, xb, yb, tb
该怎样使用!!!!!!!!!!
Input #1, n, ta, xa, ya, xb, yb, tb的意思就是你把文件的5,273. 5615 ,50575. 215 ,5111. 594
5421. 235 ,5257. 232 ,117. 4712(也就是文件的前2行的数值)分别赋值给n, ta, xa, ya, xb, yb, tb
其中第一行第一个数5,意思是第三行到最后一行一共5行,这个数是第三行到最后一行的行数对应的,我的意思是将第三行至最后赋给数组b(v), s(v)!
那你的 v是多少呢
追问根据我上边的数据这里v-1=5,也就是根据第三行到最后一行的行数决定的!也就是给出数据第一行的第一个数5,
Input #1, n, ta, xa, ya, xb, yb, tb的意思就是你把文件的5,273. 5615 ,50575. 215 ,5111. 594
5421. 235 ,5257. 232 ,117. 4712(也就是文件的前2行的数值)分别赋值给n, ta, xa, ya, xb, yb, tb
其中第一行第一个数5,意思是第三行到最后一行一共5行,这个数是第三行到最后一行的行数对应的,我的意思是将第三行至最后赋给数组b(v), s(v)!根据我上边的数据这里v-1=5,也就是根据第三行到最后一行的行数决定的!
好吧,我直接给你代码吧。
你的文本文件不需要第1行的第1个数5,只要:第1行三个数、第2行三个数、从第3行开始每行两个数(随便多少行都可以),代码自己帮你自动算出那个数。
以下代码假设你文本文件是“data.txt”、位置在D盘下,以下代码写在一个命令按钮command1里【你直接复制过去运行即可、当运行完毕下列模块即把所有数据装入那些未知数里了】:
Private Sub Command1_Click()
Dim Strling As String, StrData As String, a As Long, aa As Long, x() As Single
Dim ta As Single, xa As Single, ya As Single, xb As Single, yb As Single, tb As Single
Dim b() As Single, s() As Single
Open "D:\data.txt" For Input As #1
Do Until EOF(1)
Line Input #1, Strling
If Strling "" Then a = a + 1
Loop
ReDim b(a - 2), s(a - 2)
Strling = ""
Do Until EOF(1)
Line Input #1, Strling
If Strling "" Then
aa = aa + 1
x() = Split(StrLine, ",")
Select Case aa
Case 1
ta = x(0): xa = x(1): ya = x(2)
Case 2
xb = x(0): yb = x(1): tb = x(2)
Case Is >= 3
b(aa - 2) = x(0): s(aa - 2) = x(1)
End Select
End If
Loop
Close #1
MsgBox "文本文件已经输入到所有变量中!" & vbCrLf & "您的文本文件中除了第1行第2行外、还有" & a - 2 & "行。", vbOKOnly, "打开数据成功"
End Sub
注意,数据结构如下:
273.5615,50575.215,5111.594
5421.235,5257.232,117.4712
275.1327,51.794
211.3505,66.781
144.3541,123.898
208.5307,146.298
。。。。。 '省略号代表随便你多少行都可以
263.3342,0
第一行装进:ta 、xa 、ya
第二行装进:xb 、yb、tb
第三行以后均为:每行的第一个数装在b()里、第二个数装在s()里
b()和s()的范围都是从b(1)、s(1)开始、直到最后一行 如上面的b(5)、s(5) 这里的5即代表没有算前两行。
好了,你的这个问题也就解决了。
再不明白就直接到我的留言薄询问吧http://www.iz88.net/book/book_write.asp