文件操作

在VB中,按照文件的存取访问方式,分为顺序文件,随机文件,二进制文件.
在VB中,对于顺序文件,随机文件,二进制文件的操作通常都有3个步骤:
(1)打开文件:
(2)访问文件:读操作Input#语句,Input和InputB函数,Line Input#语句。写操作Print#语句,Write#语句
(3)关闭文件:打开的文件使用(读/写)完后,必须关闭,否则会造成数据丢失.Close,表示关闭所有文件
 
一、顺序文件:用于处理一般的文本文件,它是标准的ASCII文件.
读操作:必须从已存在的顺序文件中读取数据.在读一个顺序文件时,首先要用Input方式将准备读的文件打开.
Open 文件名包括路径 [For打开方式Input、Output、Append ] As [#]文件号 [Len   =   buffersize]
用Input表示从文件中读取数据,文件必须存在。
用Output表示向打开的文件中写入数据,以这种方式打开文件时,会覆盖文件中原有的数据
用Append表示向打开的文件中写入数据,则向文件尾添加数据
当在文件与程序之间拷贝数据时,Len=buffersize子句指定缓冲区的字符数.

1.Input#语句
Input语句一般格式:
Input #文件号,变量表列
dim x,y,z as string
Open "c:/vb/shua.dat" For Input As #1
Input #1,x,y,z
Close #1

2.Line Input#语句
Line Input语句是从打开的顺序文件中读取一行.
Line Input语句的一般格式:Line Input #文件号,字符串变量
dim a as string
Open "c:/vb/shua.dat" For Input As #2
Line Input #2,a
close #2

写操作:向顺序文件中添加数据。
1.Print语句:回车换行符必须在代码中添加,chr(13)+chr(10)
Print语句的一般格式:
Print #文件号 [,输出表列]
例如:
Open "d:/shu2.dat" For Output As #2  
Print # 2, "zhang";"wang";"li"
Close #2
执行上面的程序段后,写入到文件中的数据如下:
zhangwangli

2.Write语句
用Write语句项文件写入数据时,与Print语句不同的是,Write语句能自动在各数据项之间插入逗号,并给各字符串加上双引号.自动回车换行。
Write语句的一般格式:
Write #文件号 [,输出表列]
例如:
Open "d:/shua.dat" For Output As #6
Write # 6, "zhang";"wang";"li"
Close #6
执行上面的程序段后,写入到文件中的数据如下:
"zhang","wang","li"

二、随机文件
随机文件可直接快速访问文件中的任意一条记录,它的缺点是占用空间较大.
随机文件由固定长度的记录组成,一条记录包含一个或多个字段.具有一个字段的记录对应于任一标准类型,比如整数或者定长字符串.具有多个字段的记录对应于用户定义类型.随机文件中每个记录都有一个记录号,只要指出记录号,就可以对该文件进行读写.
在对一个随机文件操作之前,也必须用Open语句打开文件,随机文件的打开方式必须是Random方式,同时要指明记录的长度,随机文件打开后,可同时进行写入与读出操作.
Open语句的一般格式:
Open 文件名包括路径 For Random As #文件号 Len=记录长度
记录长度是一条记录所占的字节数.可以用Len函数获得.

读操作:Get语句: Get # 文件号,记录号,变量
Get语句把文件中由记录号指定的记录内容读入到指定的变量中.
Get # 2,3,u
表示将2号文件中的第3条记录读出后存放到变量u中.

写操作:Put语句:Put # 文件号,记录号,变量
Put语句把变量的内容写入文件中指定的记录位置.记录号是一个大于或等于1的整数.
Put # 1,9,t
表示将变量t的内容送到1号文件中的第9号记录去.


三、二进制文件
二进制文件被看作是字节顺序排列的.由于对二进制文件的读写是以字节为单位进行的,所以能对文件进行完全的控制.如果知道文件中数据的组织结构,则任何文件都可以当作二进制文件来处理使用.
二进制文件的打开用Open语句.其格式为:
Open 文件名 For Binary As #文件号

对二进制文件的读/写同随机文件一样用Put和Get语句.它们的格式如下:
Put # 文件号,位置,变量
Get # 文件号,位置,变量


四、文件操作常用函数
1.LOF函数
格式:LOF(文件号)
功能:返回一个已打开文件的大小,类型为Long,单位是字节.
2.FileLen函数
格式:FileLen(文件名)
功能:返回一个未打开文件的大小,类型为long,单位是字节.文件名可以包含驱动器以及目录.
3.EOF函数
格式:EOF(文件号)
功能:用于判断读取的位置是否已到达文件尾.当读到文件尾时,返回True,否则返回False.对于顺序文件,用EOF 函数测试是否到达文件尾;对于随机文件和二进制文件,如果读不到最后一个记录的全部数据,返回True,否则返回False.对于以Output 方式打开的文件,EOF 函数总是返回True.
4.LOC函数
格式:LOC(文件号)
功能:返回文件当前读/写的位置,类型为Long. 对于随机文件,返回最近读/写的记录号;对于二进制文件,返回最近读/写的字节的位置.对于顺序文件,返回文件中当前字节位置除以 128 的值.对于顺序文件而言,Loc 的返回值无实际意义.
5.Input函数
格式:Input(字符数,#文件号)
功能:从打开的顺序文件读取指定数量的字符.Input函数返回从文件中读出的所有字符,包括逗号,回车符,换行符,引号和空格等.
例如:Text1.Text=Input(Lof(2),#2)
该语句是将2号文件的内容全部复制到文本框中.

 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值