vb顺序文件读操作

OptionBase1PrivateSubForm_Click()Staticstud()AsstuOpen"c:\stu_list"ForInputAs#1n=Inpu... Option Base 1
Private Sub Form_Click()
Static stud() As stu
Open "c:\stu_list" For Input As #1
n = InputBox("enter number of student")
ReDim stud(n) As stu
FontSize = 12
Print "姓名"; Tab(20); "学号"; Tab(30); "年龄"; Tab(40); "住址"
For i = 1 To n
Input #1, stud(i).stname, stud(i).num, stud(i).age, stud(i).addr
Print stud(i).stname; Tab(20); stud(i).num; Tab(30); stud(i).age; Tab(40); stud(i).addr
Next i
Close #1

End Sub

Input #1, stud(i).stname, stud(i).num, stud(i).age, stud(i).addr
这一行有问题? 黄色光标老覆盖这一行
展开
 我来答
悠悠__W欭
2014-05-30 · TA获得超过185个赞
知道答主
回答量:178
采纳率:50%
帮助的人:123万
展开全部
使用顺序文件访问

推荐您使用 File System Objects 来创建文本文件,但该信息只在需要使用旧文本文件创建方法时才提供。

当要处理只包含文本的文件时,比如由典型文本编辑器所创 建的文件-也就是说,其中的数据没有分成记录的文件,使用顺序型访问最好。顺序型访问不太适于存储很多数字,因为每个数字都要按字符串存储。一个四位数将需要 4 个字节的存储空间,而不是作为一个整数来存储时只需的 2 个字节。

打开顺序访问文件
当以顺序型访问打开一个文件时,可执行以下操作:

从文件输入字符 (Input)

向文件输出字符 (Output)

把字符加到文件 (Append)
要顺序型访问打开一个文件,Open 语句使用以下语法:

Open pathname For [Input | Output | Append] As filenumber [Len = buffersize]

当打开顺序文件作为 Input 时,该文件必须已经存在,否则,会产生一个错误。然而,当打开一个不存在的文件作为 Output 或 Append 时,Open 语句首先创建该文件,然后再打开它。

当在文件与程序之间拷贝数据时,选项 Len 参数指定缓冲区的字符数。

在打开一个文件 Input、Output 或 Append 以后,在为其它类型的操作重新打开它之前必须先使用 Close 语句关闭它。

编辑为顺序访问打开的文件
如果要编辑一个文件,先把它的内容读入到程序变量,然后改变这些变量,最后再把这些变量写回到该文件。以下各节讨论如何编辑以顺序型访问打开的各记录。

从文件中读取字符串
要检索文本文件的内容,应以顺序 Input 方式打开该文件。然后使用 Line Input#,Input( ),或者 Input# 语句将文件拷贝到程序变量中。

Visual Basic 提供了一次读写顺序文件一个字符或一行的语句和功能。

例如,以下代码段逐行读取一个文件:

Dim LinesFromFile, NextLine As String

Do Until EOF(FileNum)
Line Input #FileNum, NextLine
LinesFromFile = LinesFromFile + NextLine + Chr(13) + Chr(10)
Loop

尽管 Line Input # 到达回车换行时它会识别行尾,但是,当它把该行读入变量时,不包括回车换行。如果要保留该回车换行,代码必须添加。

也可以使用 Input # 语句,它读取文件中所写的一列的数字和/或字符串表达式。例如,要从一个邮件列表文件中读取一行,可使用以下语句:

Input #FileNum, name, street, city, state, zip

可以使用 Input 函数来从文件向变量拷贝任意数量的字符,所给的变量大小应足够大。例如,以下的代码使用 Input 把指定数目的字符复制到变量。

LinesFromFile = Input(n, FileNum)

要将整个文件复制到变量,请使用 InputB 函数将字节从文件复制到变量。因为InputB 函数返回一个 ANSI 字符串,您必须使用 StrConv 函数将 ANSI 字符串转换为一个如下的 UNICODE 字符串:

LinesFromFile = StrConv(InputB(LOF(FileNum), FileNum), vbUnicode)
把字符串写入文件
要在顺序文件中存储变量的内容,应以顺序 Output 或 Append 打开它,然后使用 Print # 语句。例如,文本编辑器可以使用以下代码行来把一个文本框的内容拷贝到文件。

Print #FileNum, TheBox.Text

Visual Basic 也支持 Write # 语句,它把一列数字和/或字符串表达式写入文件。它自动地用逗号分开每个表达式,并且在字符串表达式端放置引号。

Dim AnyString As String, AnyNumber As Integer

AnyString = "AnyCharacters"
AnyNumber = 23445
Write #FileNum AnyString, AnyNumber

这个代码段把两个表达式写入由 FileNum 指定的文件。第一个表达式包含一个字符串而第二个包含数字 23445。因而,Visual Basic 把以下的字符(包括所有标点符号)写入到文件中:

"AnyCharacters",23445

注意 如果正在用顺序型访问的 Write # 与 Input # 语句,可考虑换用随机型 或二进制型访问,因为它们更适合面向于记录的数据。

详细信息 有关顺序文件访问的其它信息,请参阅“Open 语句”。
这样可以么?
zx001z7d53
2014-05-31 · TA获得超过2万个赞
知道大有可为答主
回答量:2.4万
采纳率:52%
帮助的人:5410万
展开全部
使用顺序文件访问

推荐您使用 File System Objects 来创建文本文件,但该信息只在需要使用旧文本文件创建方法时才提供。

当要处理只包含文本的文件时,比如由典型文本编辑器所创 建的文件-也就是说,其中的数据没有分成记录的文件,使用顺序型访问最好。顺序型访问不太适于存储很多数字,因为每个数字都要按字符串存储。一个四位数将需要 4 个字节的存储空间,而不是作为一个整数来存储时只需的 2 个字节。

打开顺序访问文件
当以顺序型访问打开一个文件时,可执行以下操作:

从文件输入字符 (Input)

向文件输出字符 (Output)

把字符加到文件 (Append)
要顺序型访问打开一个文件,Open 语句使用以下语法:

Open pathname For [Input | Output | Append] As filenumber [Len = buffersize]

当打开顺序文件作为 Input 时,该文件必须已经存在,否则,会产生一个错误。然而,当打开一个不存在的文件作为 Output 或 Append 时,Open 语句首先创建该文件,然后再打开它。

当在文件与程序之间拷贝数据时,选项 Len 参数指定缓冲区的字符数。

在打开一个文件 Input、Output 或 Append 以后,在为其它类型的操作重新打开它之前必须先使用 Close 语句关闭它。

编辑为顺序访问打开的文件
如果要编辑一个文件,先把它的内容读入到程序变量,然后改变这些变量,最后再把这些变量写回到该文件。以下各节讨论如何编辑以顺序型访问打开的各记录。

从文件中读取字符串
要检索文本文件的内容,应以顺序 Input 方式打开该文件。然后使用 Line Input#,Input( ),或者 Input# 语句将文件拷贝到程序变量中。

Visual Basic 提供了一次读写顺序文件一个字符或一行的语句和功能。

例如,以下代码段逐行读取一个文件:

Dim LinesFromFile, NextLine As String

Do Until EOF(FileNum)
Line Input #FileNum, NextLine
LinesFromFile = LinesFromFile + NextLine + Chr(13) + Chr(10)
Loop

尽管 Line Input # 到达回车换行时它会识别行尾,但是,当它把该行读入变量时,不包括回车换行。如果要保留该回车换行,代码必须添加。

也可以使用 Input # 语句,它读取文件中所写的一列的数字和/或字符串表达式。例如,要从一个邮件列表文件中读取一行,可使用以下语句:

Input #FileNum, name, street, city, state, zip

可以使用 Input 函数来从文件向变量拷贝任意数量的字符,所给的变量大小应足够大。例如,以下的代码使用 Input 把指定数目的字符复制到变量。

LinesFromFile = Input(n, FileNum)

要将整个文件复制到变量,请使用 InputB 函数将字节从文件复制到变量。因为InputB 函数返回一个 ANSI 字符串,您必须使用 StrConv 函数将 ANSI 字符串转换为一个如下的 UNICODE 字符串:

LinesFromFile = StrConv(InputB(LOF(FileNum), FileNum), vbUnicode)
把字符串写入文件
要在顺序文件中存储变量的内容,应以顺序 Output 或 Append 打开它,然后使用 Print # 语句。例如,文本编辑器可以使用以下代码行来把一个文本框的内容拷贝到文件。

Print #FileNum, TheBox.Text

Visual Basic 也支持 Write # 语句,它把一列数字和/或字符串表达式写入文件。它自动地用逗号分开每个表达式,并且在字符串表达式端放置引号。

Dim AnyString As String, AnyNumber As Integer

AnyString = "AnyCharacters"
AnyNumber = 23445
Write #FileNum AnyString, AnyNumber

这个代码段把两个表达式写入由 FileNum 指定的文件。第一个表达式包含一个字符串而第二个包含数字 23445。因而,Visual Basic 把以下的字符(包括所有标点符号)写入到文件中:

"AnyCharacters",23445

注意 如果正在用顺序型访问的 Write # 与 Input # 语句,可考虑换用随机型 或二进制型访问,因为它们更适合面向于记录的数据。

详细信息 有关顺序文件访问的其它信息,请参阅“Open 语句”。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiangjuan314
2016-02-01 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2765万
展开全部
Open 文件名 [For模式][Access 存取类型][锁定]As [#]文件号[Len=记录长度]
说明:
(1)文件名;
(2) 模式用于指定文件访问的方式,包括:
Append——从文件末尾添加 Binary——二进制文件
Input——顺序输入(输入给自己,从txt中取出) Output——顺序输出(输出到txt中)
Random——随机存取方式
(3)文件号(或称文件缓冲区)
(4)存取类型:访问文件的类型,为Read(只读)、Write(只写)、Read Write(读写)
(5)锁定:限制其他用户或其他进程对文件进行读写操作
Shared(共享)、LockRead(禁止读)、Lock Write(禁止写)、
Lock Read Write(禁止读写)
(6)Len:用来指定每个记录的长度(字节数)
示例: Open"d:\cj1.dat" For Output As #1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式