VBOpen函数详解打开、关闭、读、写文件

beat365下载地址 ⌚ 2025-12-27 03:26:20 👤 admin 👁️ 6814 ❤️ 151
VBOpen函数详解打开、关闭、读、写文件

VBOpen函数详解打开、关闭、读、写文件

(2019-01-20 09:48:04)

标签:

vb

open

分类:

程序设计_VB

(一)打开和关闭文件

1、顺序文件

打开顺序文件,我们可以使用Open语句。它的格式如下:

Open pathname For [Input |Output |Append] As [#]filenumber

[Len = buffersize]

说明:

(1)参数pathname 表示要打开的文件名,文件名可以包含有驱动器和目录

(2)Input Output

和Append用于设置顺序文件的打开方式。其中,Input表示从打开的文件中读取数据。以这种方式打开文件时,文件必须存在,否则会产生错误。Output表示向打开的文件中写入数据。以这种方式打开文件时,文件中原有的数据将被覆盖,新的数据将从文件开始写入。如果文件不存在,则创建一个新文件。Append表示向打开的文件中添加数据。以这种方式打开时,文件中原有的数据将被保留,新的数据将从文件为开始添加。如果文件不存在,则创建一个新文件。

(3)As[#]filenumber

子句用于为打开的文件指定文件号.对文件进行读写操作时,要用文件号表示该文件.文件号是介于1~511之间的整数,既可以是数字,又可以是变量.也可以省略不用.

(4)当在文件与程序之间拷贝数据时,Len=buffersize子句指定缓冲区的字符数.

例如:

Open App.Path + "\test.dat" For Output As 1

Open App.Path + "\test.dat" For Output As

1

这两句代码在当前应用程序所在目录下创建了一个名为test.dat的文本文件,分配文件号为1.

Open App.Path + "\test.dat" For Input As

[#]filenumber

这条语句是从文本文件中读取数据.

Open App.Path + "\test.dat" For Append As

[#]filenumber

这条语句则是像文本文件中添加数据

2、随机文件

操作随机文件之前,首先必须定义用于保存数据项的记录类型.该记录是用户自定义数据类型,他们是随机文件中存储数据的基本结构.例如:

Type Student

No As Integer

Name As String * 20

age As Integer

End Type

Dim Stud As Student ‘定义一个可以存放学生材料的变量

随机文件中,所有的数据都将保存到若干个结构为Student类型的记录中,

而从随机文件中读出的数据则可以存放到变量Stud中.

之后我们就可以打开并读写文件了.下面是打开随机文件的语法格式:

Open filename For Random as [#]filenumber Len =

Reclength

说明:

(1)参数filename 和filenumber 分别表示文件名或文件号.

(2)关键字Random 表示打开的是随机文件

(3)Len子句用于设置记录长度,长度由参数Reclength指定.Reclength的值必须大于0,而且必须与定义的记录结构的长度一致.计算记录长度的方法是将记录结构中每个元素的长度相加.例如前面声明的Student的长度应该是2+20+2=24字节.

打开一个记录类型为Student 的随机文件的方法是:

Open "c:\Student.txt " For Random As #1 Len =

25

3、二进制文件

打开二进制文件的语法格式如下:

Open pathname For Binary As

[#]filenumber

说明:

(1)

参数filename 和filenumber 分别表示文件名或文件号.

(2)关键字Binary 表示打开的是二进制文件

(3)对于二进制文件,不能指定字节长度.每个打开的二进制文件都有一个自己的指针,文件指针是一个数字值,指向下一次读写操作的文件中的位置.二进制文件中的每个”位置”对应一个数据字节,因此,有n个字节的文件,就有1到n个位置.

我们可以用Seek()函数返回当前的文件指针位置(即下一个要读写的字节

);用Loc()函数返回上一次读写的字节位置,除非用Seek语句移动了指针,Loc()返回值总比Seek()的小1.我们来看下面的例子:

Open “student.txt” for Binary as #1

该语句用二进制的方式打开了student.txt文件.

(二)读文件

1、顺序文件

顺序文件的读取有三种方式:

(1)Line Input # 语句

该语句从打开的顺序文件中读取一行数据。这里的一行指的是从当前指针位置开始到回车符或回车换行符之间的所有数据。Line

Input # 语句的语法格式如下:

Line Input # 文件号,变量号

说明:“文件号”是打开文件时所用的文件号;“变量号”使用来存放读出数据的一个或多个变量,如果有多个变量,中间用空格分割开。Input#

语句为参数列表中的每一个变量读取文件的一个域,并将读出的域存入变量中。该语句只能顺序的从第一个域开始,直到读取想要的域。

请看下面代码:

Dim strLine As String

Open "c:\vb\test.txt" For Input As #1

Do Until EOF(1)

Line Input #1,

strLine

text1.Text = text1.Text +

strLine + Chr(13) + Chr(10)

Loop

Close #1

此段代码逐行读取一个文件到文本框中。

(2)Input函数

此函数可以从顺序文件中一次读取指定长度的字符串。具体地说,就是从文件的当前位置开始,读取指定个数的字符,然后将他们返回。Input函数可以读取包括换行符,回车符,空格符等在内的各种字符。下面是它的语法格式:

变量 =

Input(串长度,文件号)

例如,要从一个打开文件中读取12个字符并复制到变量file中,我们可以这样写:

file = Input(12,filenum)

如果要将整个文件复制到变量,请使用InputB函数将字节从文件复制到变量。由于InputB函数返回一个ASCII字符串,因此,必须用StrCopy函数将ASCII字符串转换为Unicode字符串。代码如下:

file = StrCopy (Input

(LOF(filenanum),filenum),vbUnicode)

(3)Input # 语句

Input

#语句可以从文件中同时向多个变量内读入数据,而且读入的数据可以是不同类型的。

下面使它的语法格式:

Input # 文件号,变量列表

例如,我们要在文件student.txt中写入数据,下面是代码:

Open "student.txt" For Output As #filenum

Write #filenum, "张三", "初一年级", 14

Write #filenum, "李四", "职业高中", 18

Dim name As String, nianji As String, age As Integer

Dim name1 As String, nianji1 As String, age1 As Integer

Open "student.txt" For Input As #filenum

Input #filenum, name, nianji, age

Input #filenum, name1, nianji1, age1

Close #filenum

执行结果:

name=”张三” ,nianji = “初一年级” ,age =14

name=”李四” ,nianji = “职业高中” ,age =18

2、随机文件

读取随机文件是可以使用Get #

语句,数据从文件的一个指定记录中读出后,存入一个用户自定义的变量中.

语法格式:

Get # FileNum ,[RecNum],UserType

说明:

(1)FileNum

是要打开的文件号;RecNum是要读取的记录号,若省略,则读取下一个记录

(2)UserType 是一个用来存放读出数据的用户自定义的数据类型变量.

下面是一个例子:

Get # 1,5,Student

该语句读取文件号为1的文件中的第5条记录.

3、二进制文件

读写二进制文件的方法和读写随机文件的方法基本相同,下面是相关的语句格式及其说明:

格式:

Get [#]fileNumber ,[Pos], Var

功能:

用二进制方式,从文件的中指定的位置开始读取,所给变量长度的数据

说明:

(1)FileNumber是以二进制方式打开的文件号.

(2)Pos用来指定读写操作发生时的字节位置,若省略,则使用当前文件指针位置.

(3)Var是用来存放读出的数据的变量.该语句会自动根据var变量包含的字节长度读取适当的文件,如果Var是一个可变长度的字符串变量,则传送的字节数等于Var中目前的字节数.对于文件长度的判断我们可以使用Lof()函数,Eof()函数检查文件的结尾位置.

下面的代码复制studert.txt文件到student1.txt文件中

Dim ar As String * 1, i As Integer

Open "c:\student.txt" For Binary As #1

Open "c:\student2.txt" For Binary As #2

For i = 1 To LOF(1)

Get #1, , ar

Put #2, , ar

Next i

Close #1, #2

(三)写文件

1、

顺序文件

写顺序文件我们可以用Write # 和Print

#语句向一个已经打开的文件中写入数据.

下面是他们的格式和说明:

Print

# 的语法格式:

Print

# 文件号,变量列表

例如,将文本框中的文本写到文件中,代码如下:

Open "file.txt" For Output As #filenum

Input #filenum, text1.text

Write

# 语句的语法格式:

Write # 文件号,变量列表

说明:用Write # 语句写入的信息便于以后用Input #语句来读取数据,因为Write

#语句自动将写入到文件中的信息用逗号分开,并为字符串数据加上双引号.例如:

Open "student.txt" For Output As #filenum

Write #filenum, "张三", "初一年级", 14

Write #filenum, "李四", "职业高中", 18

2、

随机文件

向随机文件中写入数据,使用Put

#语句.语法格式如下:

Put [#] FileNum ,[RecNum],UserType

说明:

(1)

FileNum 是要打开的文件号;RecNum是要写入的记录号,若省略,则再上一次用Get

和Put语句所读写过的记录的后一条记录中写入,如果没有执行过Get 和Put语句,就从第一条记录开始

(2)UserType

是包含要写入数据的用户自定义的数据类型变量.例如:我们向前面的student.txt文件中的第5个记录写入数据,可用这些语句:

stud.No = 0301

stud.Name = “王武”

stud.Age =20

Put #1 ,5,stud

如果要插入的数据不只一两条的话,首先要确定文件和每条记录的长度,这样就可以计算出文件中究竟有多少条记录.我们可以用Lof()函数返回文件的长度,Len()函数返回每个记录的长度,计算文件中的记录个数可以用文件的长度除以给个记录的长度.示例如下:

Nextrec= (Lof(1)\Len(UserType))+1

Put #1,Nextrec,UserType

3、二进制文件

下面是以二进制方式写入文件的语句格式及其说明:

格式:

Put [#]fileNumber ,[Pos], Var

功能:

用二进制方式,从文件的中指定的位置开始写入,所给变量长度的数据

说明:

(1)FileNumber是以二进制方式打开的文件号.

(2)Pos用来指定写操作发生时的字节位置,若省略,则使用当前文件指针位置.

(3)Var是用来存放写入的数据的变量.该语句会自动根据var变量包含的字节长度写入文件,如果Var是一个可变长度的字符串变量,则传送的字节数等于Var中目前的字节数

---------------------

作者:蓝图

来源:CSDN

原文:https://blog.csdn.net/lbuskeep/article/details/7638078

版权声明:本文为博主原创文章,转载请附上博文链接!

分享:

喜欢

0

赠金笔

阅读┊

收藏

喜欢▼

┊打印┊举报/Report

加载中,请稍候......

前一篇:2019年01月20日

后一篇:VB:用open语句打开文本文件的可用形式范例

相关数据

爆炒螃蟹的做法

爆炒螃蟹的做法

爆炒螃蟹收藏 152730浏览 / 424收藏作者:木内香澄HrNv健康功效 螃蟹:清热解毒 酱油:补血、护齿、保护骨骼 胡椒粉:补血、护齿、保护骨骼 食材用

12-23 体育投注英超和欧冠
北京故宫有几个门?从哪个门进?故宫的正门又是哪个门?

北京故宫有几个门?从哪个门进?故宫的正门又是哪个门?

北京故宫,又称紫禁城,是中国最著名的宫殿建筑之一,位于北京市中心。曾是明清两代的皇宫、居所,现在是故宫博物馆,是北京市的主要旅

12-08 beat365下载地址
最高价差915倍,医保让中成药降价

最高价差915倍,医保让中成药降价

原创 张铃 经济观察报 山东 安宫牛黄丸、板蓝根颗粒、小柴胡颗粒、牛黄解毒片、川贝枇杷糖浆、六味地黄丸、双黄连注射液……此次中成药价

08-24 beat365下载地址
游戏内链接配方:反光棱柱

游戏内链接配方:反光棱柱

游戏内链接配方:反光棱柱 配方:反光棱柱 物品等级: 100 珠寶設計 需要等级: 90 需要珠宝加工(1) 使用: 教你学会制作反光棱柱。 出售价格:1 "教

07-26 体育投注英超和欧冠
风骚的女人有什么特征

风骚的女人有什么特征

风骚女人通常具有一系列引人注目的特点,这些特点可能涉及外貌、举止、言谈以及性格等多个方面。以下是对风骚女人特点的详细描述: 1. 外

10-21 体育投注英超和欧冠
淘宝运营进阶秘籍:从业余到专业

淘宝运营进阶秘籍:从业余到专业

淘宝运营不仅仅是开店、上传产品那么简单,它涵盖了市场分析、产品定位、店铺装修、营销推广、客户服务、数据分析等多个环节。在这个竞

08-24 beat365下载地址