第六章文件管理
第六章 文件管理
程序设计中,文件是十分重要的,许多情况下 使用文件可以高效地解决实际问题。有用的数据在后 备存储器上以文件的形式存储后,我们就可以通过文 件对数据进行访问、操作以及检索,这称为文件管理 61文件的分类 根据文件访问类型的不同,可以将文件分为三类: 顺序文件、随机文件和二进制文件。 (1)顺序文件 所谓顺序文件就是普通的文本文件,是比较简单 的文件结构,文件中的记录一个接一个地逐次存放, 而且只知道第一个记录的存储位置,其它记录的位置 用户无法知道。当用户需要查找一个数据时,只能从 文件头开始,一个记录、一个记录地顺序读取,直到 找到为止
程序设计中,文件是十分重要的,许多情况下, 使用文件可以高效地解决实际问题。有用的数据在后 备存储器上以文件的形式存储后,我们就可以通过文 件对数据进行访问、操作以及检索,这称为文件管理。 6.1 文件的分类 根据文件访问类型的不同,可以将文件分为三类: 顺序文件、随机文件和二进制文件。 (1)顺序文件 所谓顺序文件就是普通的文本文件,是比较简单 的文件结构,文件中的记录一个接一个地逐次存放, 而且只知道第一个记录的存储位置,其它记录的位置 用户无法知道。当用户需要查找一个数据时,只能从 文件头开始,一个记录、一个记录地顺序读取,直到 找到为止
(2)随机文件 随机文件又称直接存取文件,简称随机文 件或直接文件。与顺序文件不同,随机文件可 以按任意次序读写,但要求每一行或每个记录 的长度必须相同,而且每个记录都有一个记录 号。在写入数据时,只要指定记录号,就可以 把数据直接存入指定位置。而在读取数据时, 只要给出记录号,就能直接读取该记录 (3)二进制文件 进制文件是以二进制方式保存的文件, isual basic假设数据不按照固定的方式组织, 而且允许程序按照所需的方式访问文件
(2)随机文件 随机文件又称直接存取文件,简称随机文 件或直接文件。与顺序文件不同,随机文件可 以按任意次序读写,但要求每一行或每个记录 的长度必须相同,而且每个记录都有一个记录 号。在写入数据时,只要指定记录号,就可以 把数据直接存入指定位置。而在读取数据时, 只要给出记录号,就能直接读取该记录。 (3)二进制文件 二进制文件是以二进制方式保存的文件, Visual Basic假设数据不按照固定的方式组织, 而且允许程序按照所需的方式访问文件
62文件的基本操作 文件的基本操作包括文件的打开、文件的 读写、文件的关闭文件的拷贝、文件的删除和 文件的添加等。 621文件的打开(建立) 在 sual basic中使用Open语句打开或建 立一个文件,并指定一个文件号和文件的打开 模式等。Open语句的格式如下: OpenFo模式[ Access存取类 型锁定]As閉[Len=记录长度]
6.2 文件的基本操作 文件的基本操作包括文件的打开、文件的 读写、文件的关闭文件的拷贝、文件的删除和 文件的添加等。 6.2.1 文件的打开(建立) 在Visual Basic中使用Open语句打开或建 立一个文件,并指定一个文件号和文件的打开 模式等。Open语句的格式如下: Open For 模式[Access 存取类 型][锁定] As [#] [Len =记录长度]
格式中的Open、For、As以及Len为关键字,带方括号 的字段为可选项。其它参量含义如下 (1)是必要的字符表达式,用以指定要打开或建 立的文件名,该文件名可以包含目录、文件夹及驱动器。 (2)模式用来指定文件的输入输出方式,可以为下述操作之 Output:指定顺序输出方式。 Input:指定顺序输入方式。 Append:指定顺序输出方式。与 Output不同的是,用 Append方式打开文件时,文件指针被定位在文件末尾。如 对文件进行写操作,则写入的数据附加到原来文件的后面, 也称为追加。 Random:指定随机存取方式 Binary:指定二进制方式文件,这种方式下,可以用Ge或 Pu语句对文件中的任何字节位置的信息进行读写。 如果没有指定文件的输入输出方式,则以缺省的 Random方式打开文件
格式中的Open、For、As以及Len为关键字,带方括号 的字段为可选项。其它参量含义如下: (1) 是必要的字符表达式,用以指定要打开或建 立的文件名,该文件名可以包含目录、文件夹及驱动器。 (2)模式用来指定文件的输入输出方式,可以为下述操作之 一: ▪ Output:指定顺序输出方式。 ▪ Input:指定顺序输入方式。 ▪ Append:指定顺序输出方式。与Output不同的是,用 Append方式打开文件时,文件指针被定位在文件末尾。如 对文件进行写操作,则写入的数据附加到原来文件的后面, 也称为追加。 ▪ Random:指定随机存取方式。 ▪ Binary:指定二进制方式文件,这种方式下,可以用Get或 Put语句对文件中的任何字节位置的信息进行读写。 如果没有指定文件的输入输出方式,则以缺省的 Random方式打开文件
(3) Access是可选的关键字,说明对打开文件进行 的操作种类,有Read(只读)、Wrte(只写)或 Read write(读/写)操作。“操作种类”指出了打 开的文件中所进行的操作。如果要打开的文件已由 其它过程打开,则不允许指定存取类型,否则Open 出错,并产生出错信息。 (4)[锁定]是可选的关键字,只用在多用户或多进程 环境中,说明其它进程或用户能够完全共享 Lock Read(不允许其它进程读该文件)、Lock Wrte(不允许其它进程写该文件)和 Lock Read Write(不允许其他进程读写该文件)对打开文件进 行的操作,类型包括 Shared(该文件。 如果不使用Lock子句,默认为 Lock Read Write
(3)Access是可选的关键字,说明对打开文件进行 的操作种类,有Read(只读)、Write(只写)或 Read Write(读/写)操作。“操作种类”指出了打 开的文件中所进行的操作。如果要打开的文件已由 其它过程打开,则不允许指定存取类型,否则Open 出错,并产生出错信息。 (4)[锁定]是可选的关键字,只用在多用户或多进程 环境中,说明其它进程或用户能够完全共享)、 Lock Read(不允许其它进程读该文件)、Lock Write(不允许其它进程写该文件)和Lock Read Write(不允许其他进程读写该文件)对打开文件进 行的操作,类型包括Shared(该文件。 如果不使用Lock子句,默认为Lock Read Write
(5)是必需的一个有效的文件号, 范围在1到511之间。执行Open语句时,打开 文件的文件号与一个具体的文件相关联,其 它输入输出语句或函数通过文件号与文件发 生关系 (6)记录长度是可选的小于或等于32767(字 节)的一个数。对于随机访问方式打开的文 件,该值就是记录长度。对于顺序文件,该 值就是缓冲字节数,即确定缓冲区的大小, 缓冲区越大,占用空间越多,文件的存取速 度越快
(5)是必需的一个有效的文件号, 范围在1到511之间。执行Open语句时,打开 文件的文件号与一个具体的文件相关联,其 它输入输出语句或函数通过文件号与文件发 生关系。 (6)记录长度是可选的小于或等于32767(字 节)的一个数。对于随机访问方式打开的文 件,该值就是记录长度。对于顺序文件,该 值就是缓冲字节数,即确定缓冲区的大小, 缓冲区越大,占用空间越多,文件的存取速 度越快
Open语句兼有打开文件和建立文件两种功 能。对一个数据文件进行读、写、修改或增加 数据之前,如果指定的文件不存在, 用 Input方式打开文件时,将提示“文件未找 到”;用 Append、 Binary、 Output或 Random 方式打开文件时,则建立相应的文件 622文件的关闭 文件的读写操作结束后,可以通过C|ose 语句将○pen语句打开的输入(输出文件关闭 一般格式为: cose[文件号[,文件号】]
Open语句兼有打开文件和建立文件两种功 能。对一个数据文件进行读、写、修改或增加 数据之前,如果指定的文件不存在, 用Input方式打开文件时,将提示“文件未找 到”;用Append、Binary、Output或Random 方式打开文件时,则建立相应的文件 6.2.2 文件的关闭 文件的读写操作结束后,可以通过Close 语句将Open语句打开的输入/输出文件关闭, 一般格式为: Close [[#]文件号][,[#]文件号]…
623文件的删除 删除文件可以用K语句实现,具体格为: Ki文件名 624拷贝文件 用 File Copy语句可以把源文件拷到目标文 件,拷贝后两个文件的内容完全一样,例如: File Copy Soure. dat,Target. dat 625建立和删除文件目录 在VB中可以通过MkD语句建立一个目录, RmDir语勻删除一个文件目录
6.2.3 文件的删除 删除文件可以用Kill语句实现,具体格为: Kill 文件名 6.2.4 拷贝文件 用FileCopy语句可以把源文件拷到目标文 件,拷贝后两个文件的内容完全一样,例如: FileCopy ”Soure.dat”, “Target.dat”. 6.2.5 建立和删除文件目录 在VB中可以通过MkDir语句建立一个目录, RmDir语句删除一个文件目录
626文件管理语句和函数 1. FreeFile函数 用 FreeFile函数可以得到一个在程序中没有使用 的文件号。一般格式为: FreeFile[(rangenumber)] [例6-11使用 FreeFile函数获得文件号 2. Filelen函数 此函数返回以“文件名”参数指定的文件的长度, 单位为字节 3.Loc函数 Loc函数返回在由文件号指定的文件中读写的位 置
6.2.6 文件管理语句和函数 1.FreeFile 函数 用FreeFile函数可以得到一个在程序中没有使用 的文件号。一般格式为: FreeFile[(rangenumber)] [例 6-1] 使用FreeFile函数获得文件号。 2.FileLen 函数 此函数返回以“文件名”参数指定的文件的长度, 单位为字节。 3.Loc 函数 Loc函数返回在由文件号指定的文件中读写的位 置