文件的基本概念解析

上传人:我** 文档编号:116133345 上传时间:2019-11-16 格式:PPT 页数:33 大小:158.50KB
返回 下载 相关 举报
文件的基本概念解析_第1页
第1页 / 共33页
文件的基本概念解析_第2页
第2页 / 共33页
文件的基本概念解析_第3页
第3页 / 共33页
文件的基本概念解析_第4页
第4页 / 共33页
文件的基本概念解析_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《文件的基本概念解析》由会员分享,可在线阅读,更多相关《文件的基本概念解析(33页珍藏版)》请在金锄头文库上搜索。

1、 文件是存储在外部介质(如磁盘)上的以文件名标识的数 据的集合。存储在磁盘上的文件称为磁盘文件,与计算机 相连的设备称为设备文件。这些文件都不在计算机内,统 称为外部文件。为访问存放在外部介质上的数据,应先按 文件名找到所指定的文件,然后再从该文件中读取数据。 第8章 文件 8.1 文件的基本概念 8.2 文件的打开与关闭 8.3 文件的读写操作 8.4 常用的文件操作语句和函数 8.5 文件系统控件 退出 8.1 文件的基本概念 8.1.1 文件说明 文件说明指的是文件的命名规则,在VB中,文件说明的 一般形式为: 设备名:文件所在的路径名文件引用名 在VB中,文件说明没有大小写之分。 8.

2、1.2 文件结构和分类 1文件结构 字符是构成文件的最基本单位。 字段或域由若干个字符组成,用来表示一项数据。 记录就是一组有相互关系的字段。 文件是记录的集合。 表8-1 用户电脑购置清单 编号姓名CPU内存硬盘显示器显卡光驱软驱机箱组 件 其它 00001王伟锋P733HY256APD40GPhilips自带MGH50NEC中档无 00002李伟锋P800HY640APD50GPhilips自带MGH50NEC高档无 2文件种类 (1)顺序文件 文件中的数据是按顺序组织的文本行,每行(即一个记录)的 长度可以变化,用“换行”字符作为分隔符号。在顺序文件中,只知 道第一个记录的存放位置,其他

3、的记录无从知晓。当要查找某项数 据时,只能从文件的开头,一个记录一个记录的顺序查找,直到找 到所需记录为止。 在VB中,按照文件的存取方式和组成,把文件分为顺序文件、随机 文件和二进制文件,在这三类文件中,数据的存取方法是不同的。 (2)随机文件 随机文件有时又称随机存取文件或直接存取文件,是由一组长度相 等的记录组成的,一般它们以二进制形式存放,每个记录包含一个 或多个字段。如果是只有一个字段的记录,可以是任何一种标准数 据类型,如整数或者定长字符串。如果具有多个字段的记录,则该 记录对应于用户自定义类型。对于随机文件,可以根据文件中的记 录号访问任何一条记录,无须按顺序进行。 在随机文件中

4、,每个记录是固定的,记录中每个字段的长度也是固 定的,且每个记录都有一个记录号,读写数据时,只需指定记录号 即可,且可以同时进行读写操作,数据的存取灵活、方便、速度快 ,但是占用的空间大、数据组织复杂。 二进制文件 根据数据的编码方式,文件可以分为ASC文件和二进制文件。 ASC文件即文本文件,这种文件以ASC方式保存文件,可以使 用字处理软件建立和修改,但必须以纯文本方式保存。二进制文件 以二进制方式保存文件,以字节数来定位数据,没有固定的格式, 允许程序按所需的任何方式组织和访问数据,对文件中的各个字节 数据进行存取访问和改变。二进制文件不能用普通的字处理软件进 行编辑,但占用的空间较小。

5、 任何形式的文件都可以使用二进制模式进行访问。 8.2 文件的打开与关闭 8.2.1 文件的打开 8.2.2 文件的关闭 返回退出 8.2.1 文件的打开 在VB中,使用Open语句打开或建立文件,为文件的输入输出分 配缓冲区,并确定缓冲区所使用的存取方式,其语法格式为: Open 文件说明 For方式 Access存取类型 锁定 As #文件号 Len=记录长度 其中: “文件说明”:必要,字符串表达式,指定文件名,该文件名可 能还包括目录、文件夹及驱动器。 Access:可选。关键字,说明打开的文件可以进行的操作,有 只读、只写和读/写操作。 “方式”:必要,关键字。 “锁定”:可选。关键

6、字,说明限定于其它进程打开的文件的操作 。 “记录长度”:可选。小于或等于 32767(字节)的一个数。对 于用随机访问方式打开的文件,该值就是记录长度。对于顺序 文件,该值就是缓冲字符数。 以下是使用Open 语句的不同用法来实现文件的输出与输入的范例 。 (1) 以顺序输入模式打开 client1文件,若要以其他方式打开文件,必须先关闭文件。 Open “client1“ For Input As # 1 (2)以只写的二进制方式打开文件。若要以其他方式打开文件,必须先关闭此文件。 Open “client1“ For Binary Access Write As #1 (3)下列代码以随

7、机方式打开client1文件,文件中含有用户自定义数据类型 Record 的 记录。若要以其他方式打开文件,必须先关闭此文件。 Type Record 定义用户自定义数据类型。 clientID As Integer clientName As String * 16 End Type Dim MyRecord As Record 声明变量。 Open “client1“ For Random As # 1 Len = Len(MyRecord) (4)下列代码以顺序输出方式打开文件,任何过程都可以读写该文件。若要以其他方式 打开文件,必须先关闭此文件。 Open “client1“ For

8、Output Shared As # 1 (5)下列代码以只读的二进制方式打开文件;其他过程不可以读该文件。 Open “client1“ For Binary Access Read Lock Read As # 1 (6)用随机方式打开C盘上clients文件夹下的client1文件,记录长度为512字节。 Open “c:clientsclient1“ For Random As # 1 Len = 512 8.2.2 文件的关闭 Close语句用于关闭使用Open 语句所打开的输入/输出文件。其 语法格式为: Close #文件号 , #文件号 若省略 Close关键字后的内容,则将关

9、闭 Open 语句打开的所 有活动文件。 即使没有Close语句,当程序结束时,也将自动关闭所有打开的 文件。但是Close语句还是必要的,如果不使用Close语句,可能 会使得某些需要写入的数据不能从内存写入文件中。当打开的文 件或设备正在输出时,执行Close语句并不会使输出信息的操作 中断。 8.3.1顺序文件的读写操作 1.写操作 顺序文件的写操作使用Print# 语句或Wrie# 语句实现。 (1)Print # 语句 格式:Print #文件号, outputlist 功能:将格式化显示的数据写入顺序文件中。 8.3文件的读写操作 例8-1Print # 语句实例:使用 Print

10、 # 语句将数据写入一个文件 Open “c:src.txt“ For Output As #1 打开输出文件 Print #1, “ 学生成绩表“ 将文本数据写入文件 Print #1, 将空白行写入文件。 Print #1, “姓名“; Tab; “成绩“; Tab; “备注“ 数据写入三个区 Print #1, “王维“; “ “; “95“ 以空格隔开两个字符串 Print #1, “黄梅“; “ “; “0“; 下一个Print # 语句将不换行 Print #1, Spc(15); “舞弊“ 在字符串之前写入十五个空格 Print #1, Tab(5);“ 输入完毕!“ 在第5列输

11、出字符串 Close #1 如果要将文本框的内容一次性写入文件中,可以采用如下方法: Open “c:Mytext1.txt“ For Output As #1 Print #1,Text1.Text Close #1 如果要将文本框的内容逐字地写入文件中,可以采用如下方法: Open “c:Mytext2.txt“ For Output As #1 For i=1 to Len(Text1.Text) Print #1,Mid(Text1.Text,i,1) Next i Close #1 图8-1 Print# 语句输出的内容 (2)Write # 语句 格式:Write #文件号, ou

12、tputlist 功能:将数据写入顺序文件。 与 Print # 语句不同,当要将数据写入文件时,Write # 语句会在数 据项之间插入逗号,并加上双引号,没有必要在列表中键入明确的 分界符。Write # 语句在将 outputlist 中的最后一个字符写入文件后 会插入一个新行字符,即回车换行符,(Chr(13) + Chr(10)。 图8-2 Write# 语句输出的内容 2.读操作 (1)Input # 语句 格式:Input #文件号, 变量列表 功能:从已打开的顺序文件中读出数据,并将数据指定给用逗号分 界的变量列表中的变量。 (2)Line Input # 语句 格式:Line

13、 Input #文件号, 字符串变量 功能:从已打开的顺序文件中读出一行并将它分配给字符串变量。 (3)Input 函数 格式:Input(读取的字符数, #文件号) 功能:读取以 Input 或 Binary 方式打开的文件中的指定数目的字符 。 例8-2:将图8-2中所示文本读到文本框中: Private Sub Command1_Click() Text1.Text = “ Open “c:src.txt“ For Input As #1 Do While Not EOF(1) Line Input #1, mydata Text1.Text = Text1.Text + mydata

14、+ vbCrLf Loop Close #1 End Sub 如果将代码进行如下改动,则可以将文件的内容逐字符地读入文本框中。运行结果同 图8-3。 Private Sub Command1_Click() Text1.Text = “ Open “c:src.txt“ For Input As #1 Do While Not EOF(1) inputdate = Input(1, #1) Text1.Text = Text1.Text + inputdate Loop Close #1 End Sub 图8-3 将顺序文件的内容读到文本框中 则程序运行时,单击Command1按钮,文本框中显

15、示的内容见图8-3所示。注意设计时将 Text1的MultiLine属性设置为True。 8.3.2随机文件的读写操作 1.写操作 随机文件的写操作使用Put 语句,其功能为将一个变量的数 据写入磁盘文件中,语法格式为: Put #文件号, recnumber, varname 2.读操作 随机文件的读操作使用Get 语句,其功能是将一个已打开的 磁盘文件的一条记录的内容读入一个变量之中。语法格式为 : Get #文件号, recnumber, varname 3.随机文件操作实例 在上面顺序文件的实例2中,每次新建用户窗口后,变量clientnumber都清空,保存每 个窗口中文本框的内容时,并没有用到变量clientnumber,而是将整个文本框的内容整体 写到文件中,这样很不方便以后的查找等操作。可以这样修改程序:每次单击子窗口上 的“新建”菜单项时,将提示是否保存用户选择,如果需要保存,则调用保存过程saver将 clientnumber变量保存在随机文件中,然后清除文本框并将变量clientnumber清零,如果 不必要保存,则直接并将变量clientnumber清零,清空文本框。为程序增加查找功能。 (1)将父窗体“新建”菜单单击事件代码改为: Private Sub New_Click() Form1.show End Sub

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号