VB从文本文件读取数据并赋给赋值给变量及二维数组
txt中数据如下5,273.5615,50575.215,5111.5945421.235,5257.232,117.4712275.1327,51.794211.350...
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
该怎样使用!!!!!!!!!! 展开
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
该怎样使用!!!!!!!!!! 展开
6个回答
展开全部
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
该怎样使用!!!!!!!!!!
分享到:
2011-05-13 20:52提问者采纳
处理文本数据库是比较简单的问题了,你可以参考我的以下几个百度答案:
http://zhidao.baidu.com/question/263695231.html
http://zhidao.baidu.com/question/261226446.html
http://zhidao.baidu.com/question/260252929.html
你这个问题请参考上面几个知道,从文件中读取的方法与上面的都是一样的,就是一次读取一行,再将这一行的内容以逗号分界分开到一个中间数组中,再判断是第几行,第一行赋值给n, ta, xa, ya,判断出读到的是第二行就赋值给xb, yb, tb,读出的是大于等于三行的数据均赋值给数组b(v), s(v)即可。当然,你这个在赋值前最好先判断一次这个txt文件总共有多少行,以便决定数组b(v), s(v)中的v的维数。
好好看看给你的参考资料,研究研究吧,你这个是非常简单的哦。
追问:
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即代表没有算前两行。
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
该怎样使用!!!!!!!!!!
分享到:
2011-05-13 20:52提问者采纳
处理文本数据库是比较简单的问题了,你可以参考我的以下几个百度答案:
http://zhidao.baidu.com/question/263695231.html
http://zhidao.baidu.com/question/261226446.html
http://zhidao.baidu.com/question/260252929.html
你这个问题请参考上面几个知道,从文件中读取的方法与上面的都是一样的,就是一次读取一行,再将这一行的内容以逗号分界分开到一个中间数组中,再判断是第几行,第一行赋值给n, ta, xa, ya,判断出读到的是第二行就赋值给xb, yb, tb,读出的是大于等于三行的数据均赋值给数组b(v), s(v)即可。当然,你这个在赋值前最好先判断一次这个txt文件总共有多少行,以便决定数组b(v), s(v)中的v的维数。
好好看看给你的参考资料,研究研究吧,你这个是非常简单的哦。
追问:
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即代表没有算前两行。
展开全部
你要做什么计算?aa和bb都可以用于计算的
Private Sub Command1_Click()
Dim aa(), bb(), a, b, n As Integer, i As Integer, fname As String
fname = "d:\1.txt" '文件名,可自行更改
'获得文本文件的行数,实际行数为n+1
Open fname For Binary As #1
a = StrConv(InputB(LOF(1), 1), vbUnicode)
Close #1
b = Split(a, vbCrLf)
n = UBound(b)
ReDim aa(n, 1),bb(n, 1) '将动态数组定义为二维数组
'开始从文件中读取数据,赋值给二维数组aa和bb
i = 0
Open fname For Input As #1
Do While Not EOF(1)
Input #1, aa(i, 0), aa(i, 1)
bb(i, 0)=aa(i, 0)
bb(i, 1)=aa(i, 1)
i = i + 1
Loop
Close #1
'打印读出的二维数组
Cls
For j = 0 To i - 1
Print aa(j, 0), aa(j, 1)
Next
End Sub
Private Sub Command1_Click()
Dim aa(), bb(), a, b, n As Integer, i As Integer, fname As String
fname = "d:\1.txt" '文件名,可自行更改
'获得文本文件的行数,实际行数为n+1
Open fname For Binary As #1
a = StrConv(InputB(LOF(1), 1), vbUnicode)
Close #1
b = Split(a, vbCrLf)
n = UBound(b)
ReDim aa(n, 1),bb(n, 1) '将动态数组定义为二维数组
'开始从文件中读取数据,赋值给二维数组aa和bb
i = 0
Open fname For Input As #1
Do While Not EOF(1)
Input #1, aa(i, 0), aa(i, 1)
bb(i, 0)=aa(i, 0)
bb(i, 1)=aa(i, 1)
i = i + 1
Loop
Close #1
'打印读出的二维数组
Cls
For j = 0 To i - 1
Print aa(j, 0), aa(j, 1)
Next
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是顺序文件的读取,就是得一个一个的来读取,这得用input函数,具体用法是:
open “path'” for input as#1
input#1,a,b,c……
close#1
其中path是文件的路径名。
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,至于你说的
怎样将每个数据读取给程序中的变量n, ta, xa, ya, xb, yb, tb
及数组b(v), s(v),这个问题问得好,但是很模糊,因为不知道你的
b(v)的下标的上上界是多少,你讲得具体点,再追问,我给你看看
open “path'” for input as#1
input#1,a,b,c……
close#1
其中path是文件的路径名。
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,至于你说的
怎样将每个数据读取给程序中的变量n, ta, xa, ya, xb, yb, tb
及数组b(v), s(v),这个问题问得好,但是很模糊,因为不知道你的
b(v)的下标的上上界是多少,你讲得具体点,再追问,我给你看看
更多追问追答
追问
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是多少呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
处理文本数据库是比较简单的问题了,你可以参考我的以下几个百度答案:
http://zhidao.baidu.com/question/263695231.html
http://zhidao.baidu.com/question/261226446.html
http://zhidao.baidu.com/question/260252929.html
你这个问题请参考上面几个知道,从文件中读取的方法与上面的都是一样的,就是一次读取一行,再将这一行的内容以逗号分界分开到一个中间数组中,再判断是第几行,第一行赋值给n, ta, xa, ya,判断出读到的是第二行就赋值给xb, yb, tb,读出的是大于等于三行的数据均赋值给数组b(v), s(v)即可。当然,你这个在赋值前最好先判断一次这个txt文件总共有多少行,以便决定数组b(v), s(v)中的v的维数。
好好看看给你的参考资料,研究研究吧,你这个是非常简单的哦。
http://zhidao.baidu.com/question/263695231.html
http://zhidao.baidu.com/question/261226446.html
http://zhidao.baidu.com/question/260252929.html
你这个问题请参考上面几个知道,从文件中读取的方法与上面的都是一样的,就是一次读取一行,再将这一行的内容以逗号分界分开到一个中间数组中,再判断是第几行,第一行赋值给n, ta, xa, ya,判断出读到的是第二行就赋值给xb, yb, tb,读出的是大于等于三行的数据均赋值给数组b(v), s(v)即可。当然,你这个在赋值前最好先判断一次这个txt文件总共有多少行,以便决定数组b(v), s(v)中的v的维数。
好好看看给你的参考资料,研究研究吧,你这个是非常简单的哦。
追问
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案已经有啦(有两个回答的蛮辛苦了),不过:看见这个楼主好像得了答案就逃之夭夭啦
鄙视这样的提问者。
我有更好的答案,也不会给这样的小人回答的,拜拜啦。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。
鄙视这样的提问者。
我有更好的答案,也不会给这样的小人回答的,拜拜啦。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询