就是有一TXT文档,里面有6列数,行数很多,几万几十万。 如何用VB提取数据,并且保存为数组
数组的形式跟原来一样就行。说白了就是把txt文档中的数据,提取到VB中并以数组保存为跟原来一样。假如原来TXT中是5行六列,那到VB中存成的数组形式,还是5行六列。...
数组的形式跟原来一样就行。说白了就是把txt文档中的数据,提取到VB中并以数组保存为跟原来一样。假如原来TXT中是5行六列,那到VB中存成的数组形式,还是5行六列。
展开
3个回答
展开全部
你没有说明你的文本文件中的所谓“列”是以什么做分割符的,比如空格、逗号还是Tab等。下面的代码是以1个空格作为列分割符的:
dim s() as string, ss() as string, d() as double
dim i as long, j as long
open app.path & "\123.txt" for binary as #1
s=split(input(lof(1),#1),vbcrlf)
close #1
redim d(ubound(s), 5)
for i=0 to ubound(s)
ss=split(s(i)," ")
if ubound(ss)=5 then
for j=0 to 5
d(i,j)=val(ss(j))
next
end if
next
或用下面这个代码可以应付所有的分割符,不过如果遇到有空行的情况可能会出错:
dim d() as double, i as long
open app.path & "\123.txt" for input as #1
i=0
do until eof(1)
redim preserve d(5,i)
input #1, d(0,i), d(1,i), d(2,i), d(3,i), d(4,i), d(5,i)
i=i+1
loop
close #1
d数组就是你要的结果
dim s() as string, ss() as string, d() as double
dim i as long, j as long
open app.path & "\123.txt" for binary as #1
s=split(input(lof(1),#1),vbcrlf)
close #1
redim d(ubound(s), 5)
for i=0 to ubound(s)
ss=split(s(i)," ")
if ubound(ss)=5 then
for j=0 to 5
d(i,j)=val(ss(j))
next
end if
next
或用下面这个代码可以应付所有的分割符,不过如果遇到有空行的情况可能会出错:
dim d() as double, i as long
open app.path & "\123.txt" for input as #1
i=0
do until eof(1)
redim preserve d(5,i)
input #1, d(0,i), d(1,i), d(2,i), d(3,i), d(4,i), d(5,i)
i=i+1
loop
close #1
d数组就是你要的结果
展开全部
1. 根据文档中数据的类型,比如 integer 开个变量
假如你有6列,100万行, 数据间用逗号隔开:
dim a(5, 999999)as integer ‘ 0 至5 是6 列, 0 至 999999 是 100万行
2. 打开文件
Open “你的文件路径\文件名" for input as #1
for j=0 to 999999
input #1, a(0, j), a(1, j), a(2, j), a(3, j), a(4, j), a(5, j)
next j
3. a(i, j)的内容就是文件提取数据的数组
假如你有6列,100万行, 数据间用逗号隔开:
dim a(5, 999999)as integer ‘ 0 至5 是6 列, 0 至 999999 是 100万行
2. 打开文件
Open “你的文件路径\文件名" for input as #1
for j=0 to 999999
input #1, a(0, j), a(1, j), a(2, j), a(3, j), a(4, j), a(5, j)
next j
3. a(i, j)的内容就是文件提取数据的数组
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那你就定义一个六列数组,然后读TXT,一行行读,读到一行就 split 分为六列
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询