数据文件

  • 格式:pdf
  • 大小:617.88 KB
  • 文档页数:44
第8章
8.1 数据文件概述 8.2 文件操作 8.3 文件基本操作 8.4 文件系统控制 习题8
数据文件
8.1 数据文件概述
8.1.1 8.1.2 8.1.3 8.1.4 8.1.5 数据文件的结构 文件分类 文件处理的一般步骤 文件打开与关闭 相关语句和函数
返回目录
8.1.1 数据文件的结构
为了有效地存取数据,数据必须以某种特定的方式存放,这种特定 的方式称为文件结构。 Visual Basic 文件由记录组成,记录由字段组成, 字段由字符组成。 1.字符(Character) 字符是构成文件的最基本单位。字符可以是数字、字母、特殊符号 或单一字节。 2.字段(Field) 也称域。字段由若干个字符组成,用来表示一项数据。 3.记录(Record) 由一组相关的字段组成。例如在通讯录中,每个人的姓名、单位、 地址、电话号码、邮政编码等构成一个记录。 4.文件(File) 文件由记录构成,一个文件含有一个以上的记录。例如在通讯录文 件中有 80 个人的信息,每个人的信息是一个记录,这80个记录构成一 个文件。
2.文件的关闭 文件的读写操作结束后,应将文件关闭,这可以通过 Close 语句来实现。其格式为: Close [[#]<文件号>][,[#]文件号]…… Close 语句的功能是:用来结束文件的输入输出操作。 例如,假定用下面的语句打开文件: Open "Contacts.dat" For Output As # 1, 则可以用下面的语句关闭该文件: Close # 1 说明: ⑴ Close 语句用来关闭文件,它是在打开文件之后进行的操作。格式中的“文件号”是 Open 语句中使用的文件号。关闭一个数据文件具有两方面的作用,第一,把文件缓冲 区中所有数据写到文件中;第二,释放与该文件相联系的文件号,以供其它 Open 语句 使用。 ⑵ Close 语句中的“文件号”是可选的。如果指定了文件号,则把指定的文件关闭;如 果不指定文件号,则把所有打开的文件全部关闭。 ⑶ 除了用 Close 语句关闭文件外,在程序结束时将自动关闭所有打开的数据文件。 ⑷ Close 语句使 Visual Basic 结束对文件的使用,它的操作十分简单,但绝不是可有可 无的。这是因为,磁盘文件同内存之间的信息交换是通过缓冲区进行的。如果关闭的是 为顺序输出而打开的文件,则缓冲区中最后的内容将被写入文件中。当打开的文件或设 备正在输出时,执行 Close 语句后,不会使输出信息的操作中断。如果不使用 Close 语句 关闭文件,则可能使某些需要写入的数据不能从内存(缓冲区)送入文件中。
例如: Open "Contacts.dat" For Output As # 1 建立并打开一个新的数据文件,使记录可以写到该文件中。如果文件“Contacts. dat ”己存在,该语句打开已存在的数据文件,新写入的数据将覆盖原来的数据。 Open "Contacts.dat" For Append As # 1 打开己存在的数据文件,新写入的记录附加到文件的后面,原来的数据仍在文件 中。如果给定的文件名不存在,则 Append 方式可以建立一个新文件。 Open "Contacts.dat" For Input As #1 打开己存在的数据文件,以便从文件中读出记录。 以上例子中打开的文件都是按顺序方式输入输出。 Open "Contacts.dat" For Random As # 1 按随机方式打开或建立一个文件,然后读出或写入定长记录。 Open "Records" For Random Access Read Lock Write As # 1 为读取“ Records ”文件以随机存取方式打开该又件。该语句设置了写锁定,但在 Open 语句有效时,允许其它进程读。 Open "C:\VB\Contacts.dat " For Random As # 1 Len = 256 用随机方式打开C盘上VB目录下的文件,记录长度为 256 字节。 Filename$ = "A:Dtat.art" Open Filename$ For Append As # 3
8.1.2
数组的概念
在计算机系统中,文件种类繁多,处理方法和用途也 各不相同。文件的分类标准主要有下列三种: 1.按文件的性质分类 根据文件的性质,可分为程序文件(Program File) 和数据文件(Data File)。程序文件存储的是程序,包 括源程序和可执行程序。 2.按存储信息的形式分类 ⑴ ASCII 文件:又称文本文件,它以 ASCII方式保 存文件。这种文件可以用字处理软件建立和修改(必须 按纯文本文件保存)。 ⑵ 二进制文件(Binary File) :以二进制方式保 存的文件。二进制文件不能用普通的字处理软件编辑, 占空间较小。 返回目录
返回பைடு நூலகம்录
表8-2读写方式
参 数 Output 方 式 顺序输出方式 说 明 打开或建立一个允许向文件输出数据 的顺序文件
Input
顺序输入方式
打开一个顺序文件,并从文件中读入 数据
与Output不同,当用Append 方式打 开文件时,文件指针被定位在文件末 尾。如果对文件执行写操作,则写入 的数据附加到原来文件的后面 也是默认方式。在 Random 方式中, 如果没有 Access 子句,则在执行 Open 语句时,Visual Basic 试图按下 列顺序打开文件:读/写;只读;只 写。 在这种方式下,可以用 Get 和 Put 语 句对文件中任何字节位置的信息进行 读写。在 Binary 方式中,如果没有 Access 子句,则打开文件的类型与 Random 方式相同
3.按访问模式分类 可分为顺序文件、随机文件和二进制文件。 ⑴ 顺序文件(sequential File) 顺序文件要求按顺序进行访问。读出时按从头到尾的顺序 读,写入时也一样。顺序文件的优点是结构简单,访问模式简单, 用它处理文本文件比较方便;缺点是必须按顺序访问,因此不能 同时进行读、写两种操作。 ⑵ 随机文件(Random Access File) 在随机文件中,文件中每条记录的长度都是相同的,记录 与记录之间不需要特殊的分隔符号,如图8-1所示。用户只要给 出记录号,就可以直接访问某一特定记录。因此,与顺序文件相 比,它的优点是存取速度快,更新简便。 ⑶ 二进制文件(Binary File) 二进制文件是按访问模式分类的,与按信息存储形式分类 的二进制文件在概念上是有区别的。从信息存储的形式来说,随 机文件也应归到二进制文件,因为随机文件存储的也是各种数据 的二进制代码。
8.1.3 文件处理的一般步骤
在 Visual Basic 中,数据文件的操作按下述步骤进行: ⑴ 打开(或建立)文件。一个文件必须先打开或建 立后才能使用。如果一个文件己经存在,则打开该文件; 如果不存在,则建立该文件。 ⑵ 读写文件。进行读、写操作在打开(或建立)的 文件上执行所要求的输入输出操作。在文件处理中,把内 存中的数据传输到相关联的外部设备(例如磁盘)并作为 文件存放的操作叫做写数据,而把数据文件中的数据传输 到内存程序中的操作叫做读数据。一般来说,在主存与外 设的数据传输中,由主存到外设叫做输出或写,而由外设 到主存叫做输入或读。 ⑶ 关闭文件。对于一个不再使用的文件,应执行关 闭命令,以便释放相关的文件缓冲区。
⑵ 为了满足不同的存取方式的需要,对同一个文件可以用几个不同的文件号 打开,每个文件号有自己的一个缓冲区。对于不同的访问方式,可以使用不同 的缓冲区。但是,当使用 Output 或 Append 方式时,必须先将文件关闭,才 能重新打开文件。而当使用 Input 、 Random 或 Binary 方式时,不必关闭文 件就可以用不同的文件号打开文件。 ⑶ Open 语句兼有打开文件和建立文件两种功能。在对一个数据文件进行读、 写、修改或增加数据之前,必须先用Open 语句打开或建立该文件。如果为输 入(Input)打开的文件不存在,则产生“文件未找到”错误;如果为输出 (Output)、附加(Append)或随机(Random)访问方式打开的文件不存 在,则建立相应的文件;此外,在Open 语句中,任何一个参量的值如果超出 给定的范围,则产生“非法功能调用”错误, 而且文件不能被打开。
Lock Shared 任何机器上的任何进程都可以对该文件进行读写操作 不允许其它进程读该文件。只在没有其它 Read 存取类型的 进程访问该文件时,才允许这种锁定 不允许其它进程写这个文件。只在没有其它 Write 存取类 型的进程访问该文件时,才能使用这种锁定 不允许其它进程读写这个文件
Lock Read
Lock Write Lock Read Write
④文件号:是一个整型表达式,其值在1~511范围内。执行Open 语句时,打 开文件的文件号与一个具体的文件相关联,其它输入输出语句或函数通过文件 号与文件发生关系。 ⑤记录长度:是一个整型表达式。当选择该参量时,为随机存取文件设置记录 长度。对于用随机访问方式打开的文件,该值是记录长度;对于顺序文件,该 值是缓冲字符数。“记录长度”的值不能超过 32767 字节。对于二进制文件,将 忽略 Len 子句。
“存取类型”指出了在打开的文件中所进行的操作。如果要打开的文件已由 其它过程打开,则不允许指定存取类型,否则打开失败,并产生出错信息。 ③锁定类型:该子句只在多用户或多进程环境中使用,用来限制其它用户 或其它进程对打开的文件进行读写操作。锁定类型见表8-4。
③锁定类型:该子句只在多用户或多进程环境中使用,用来限制其它用户或 其它进程对打开的文件进行读写操作。锁定类型见表8-4。 参 数 说 明 表8-4锁定类型
Append
顺序输出(追加)方 式
Random
随机存取方式
Binary
二进制方式文件
②存取类型:放在关键字 Access 之后,用来指定访问文件的类型。其取值见 表8-3。表8-3存取类型