主题:读取文本文件行数问题
QBlove
[专家分:0] 发布于 2006-01-12 14:43:00
假设一个文本文件有几十行,现要分别读取第2、5、8、9、12......等行(即这些行没有固定的)并使其为变量,最简单的写法是怎样的?
回复列表 (共4个回复)
沙发
moz [专家分:37620] 发布于 2006-01-12 15:30:00
最简单?不好意思,这个最字不好办,去掉这个最字我就举个例:
f$="文件名"
f%=freefile
open f$ for input as #f%
line input #f%,a1$
line input #f%,a2$ '第二行
line input #f%,a1$
line input #f%,a1$
line input #f%,a5$
line input #f%,a1$
line input #f%,a1$
line input #f%,a8$
line input #f%,a9$
line input #f%,a1$
line input #f%,a1$
line input #f%,a12$
close #f%
不简单的有这样子的
f$="文件名"
f%=freefile
open f$ for binary as #f%
do until eof(f%)
a$=input$(16383,#f%)
do
b=a
a=instr(a+1,a$,chr$(13)+chr$(10))
if a>0 then
l=l+1
if instr(" 2 5 8 9 12 ",str$(l)) then
k$=mid$(a$,b+2,a-b-2)
print "第";l;"行的内容是";k$
endif
endif
loop until a=0
fl=fl+b
seek #f%,fl
loop
close #f%
板凳
QBlove [专家分:0] 发布于 2006-01-13 08:55:00
MOZ,虽然你的答案并没有达到我的目的,但可以看出你是多么的热心,难以想像这个论坛如果没有你将会什么样子,可以肯定人气会马上降下来。
3 楼
moz [专家分:37620] 发布于 2006-01-13 12:51:00
1. 没有达到你的目的?你的目的是什么?
2. 我是多么的热心?你了解人活在世界对什么事情都失去兴趣的那种痛苦吗?
现在是你们在帮我减轻痛苦的时候。
4 楼
qb45 [专家分:2880] 发布于 2006-01-13 18:24:00
如果你要读文件test.dat的第5行
程序如下:
'-------定义程序中所需的变量-----
DIM FileName as string '文件名
DIM FileData as string '读文件数据变量
dim FileNum as integer '文件句柄
DIM i As integer '计数器
'----------定义变量结束-----
FileName="Test.dat" '文件名为test.dat
FileNum=freefile '获得一个文件句柄
open FileName for input as #FileNum '打开文件
do '循环读整个文件
LINE INPUT #FileNum, Filedata '从文件中读一行数据
i=i+1 '累加
if i=5 then '如果i=5 说明是第5行
print i;FileData '显示第5行的数据
EXIT DO '退出循环
end if
loop until eof(FileNum) '如果到文件末尾则退出循环
这个程序我并未运行验证,如果有错误,请自己改正!
我来回复