第10章文件 101文件的结构和分类 10.2文件操作语句和函数 10.3顺序文件 10.4随机文件 10.5文件系统控件 10.6文件基本操作
第10章 文件 10.1 文件的结构和分类 10.2 文件操作语句和函数 10.3 顺序文件 10.4 随机文件 10.5 文件系统控件 10.6 文件基本操作 引例
10.1文件和文件分类 10.1.1文件 文件是指存储在计算机外部存储器上经过格式化的数据的集 10.12文件分类 ·根据数据文件存储数据的性质分类,分为程序文件、数据文件。 根据文件的存取方式和结构分类,分为顺序文件、随机文件。 根据文件数据的编码方式分类,分为ASCⅢ码文件和二进制文件。 VB中按文件的访问方式不同,将文件分为顺序文件、随机 文件和二进制文件。后续几节将主要介绍顺序文件和随机文件 的访问操作方法
10.1.1 文件 文件是指存储在计算机外部存储器上经过格式化的数据的集 合。 10.1 文件和文件分类 10.1.2 文件分类 •根据数据文件存储数据的性质分类,分为程序文件、数据文件。 •根据文件的存取方式和结构分类,分为顺序文件、随机文件。 •根据文件数据的编码方式分类,分为ASCII码文件和二进制文件。 VB中按文件的访问方式不同,将文件分为顺序文件、随机 文件和二进制文件。后续几节将主要介绍顺序文件和随机文件 的访问操作方法
102文件操作语句和函数 顺序访问和随机访问文件方式侧重的文件数据类型不尽 相同,但它们访问文件的基本步骤相同,都是下列三种操作 步骤: (1)使用Open语句打开文件,同时指定文件的文件号。 (2)从文件中读取数据到内存变量或向文件中写入数据。 (3)使用 Close语句关闭文件。 内存 程序 数据区 读文件 缓冲区 写文件磁盘文件
顺序访问和随机访问文件方式侧重的文件数据类型不尽 相同,但它们访问文件的基本步骤相同,都是下列三种操作 步骤: 10.2 文件操作语句和函数 (1) 使用Open语句打开文件,同时指定文件的文件号。 (2) 从文件中读取数据到内存变量或向文件中写入数据。 (3) 使用Close语句关闭文件。 程序 数据区 缓冲区 内存 磁盘文件 读文件 写文件
102.1文件的打开 Open"文件名"[For访问模式]As#文件号[Lem=记录长度字节数 文件名:必选参数,指定文件名,还可包括驱动器、目录。 访问模式:可选参数,指定文件访问方式。 打开顺序文件,有 Input、 Output、 Append三种模式 Input:打开一个顺序文件进行读操作。 Output:打开一个顺序文件进行写操作。文件若不存在,则新 建;文件存在则打开,覆盖原来内容 Append:追加模式。文件若存在,则打开,写入的数据添加 在原有数据末尾;文件若不存在,则新建之。 打开随机文件,为 Randon或省略 文件号:必选参数,是给打开的文件分配一个文件号,范围在1到 511之间。 记录长度字节数:可选参数。是一个小于或等于32767字节的数。 对于随机文件,该值即记录长度。对于顺序文件,该值是缓冲字符 数,指定进行数据交换时数据缓冲区的大小
10.2.1 文件的打开 Open "文件名" [For 访问模式] As [#]文件号[Len=记录长度字节数] 文件名:必选参数,指定文件名,还可包括驱动器、目录。 访问模式:可选参数,指定文件访问方式。 ➢打开顺序文件,有Input、Output 、Append三种模式 Input:打开一个顺序文件进行读操作。 Output:打开一个顺序文件进行写操作。文件若不存在,则新 建;文件存在则打开,覆盖原来内容。 Append:追加模式。文件若存在,则打开,写入的数据添加 在原有数据末尾;文件若不存在,则新建之。 ➢打开随机文件,为Random或省略 文件号:必选参数,是给打开的文件分配一个文件号,范围在1到 511之间。 记录长度字节数:可选参数。是一个小于或等于32767字节的数。 对于随机文件,该值即记录长度。对于顺序文件,该值是缓冲字符 数,指定进行数据交换时数据缓冲区的大小
1022文件的读写相关函数 EOF(#文件号):用于判断当前文件指针是否到达文件尾。若 到达,函数值为True,否则为 False FreeFilel(范围参数川:返回一个整数,代表下一个可供Open语句 使用的文件号(即未被其它文件占用的文件号)。范围参数可选, 指定一个范围,以便返回该范围之内的下一个可用文件号。指定 0(缺省值)则返回一个介于1~255之间的文件号。指定1则返回 个介于256-511之间的文件号。 例如: Dim FileNumber As Integer FileNumber free file 取得未使用的文件号。 Open" myfile" For OutputS# FileNumber"创建或打开文 件进行写操作 Close #f FileNumber 关闭文件
10.2.2 文件的读写相关函数 EOF(#文件号):用于判断当前文件指针是否到达文件尾。若 到达,函数值为True,否则为False。 FreeFile[(范围参数)]:返回一个整数,代表下一个可供Open语句 使用的文件号(即未被其它文件占用的文件号)。范围参数可选, 指定一个范围,以便返回该范围之内的下一个可用文件号。指定 0(缺省值)则返回一个介于1~255之间的文件号。指定1则返回 一个介于 256~511之间的文件号。 例如: Dim FileNumber As Integer FileNumber = FreeFile '取得未使用的文件号。 Open "myfile" For Output As #FileNumber '创建或打开文 件进行写操作。 Close #FileNumber '关闭文件
LOF(#文件号):返回用Open语句打开的文件的字节数,若是 空文件则函数值为0。对于尚未打开的文件,可使用 Filelen(文件 名)函数计算其长度。 例如: Dim Filelength as long Open"' Filel.dat" For Input as#1·打开文件进行读操作。 Filelength= LOF(1) 调用LOF函数计算文件长度 Close #1 1023文件的关闭 对文件进行完各种操作之后,必须关闭。 Close[文件号列表 文件号列表:代表一个或多个文件号。若省略,表示关闭Open语 句打开的所有文件。 例如: Close 关闭文件号为1的文件 Close1,2'关闭当前已打开的文件号为1和文件号为2的文件 Close 关闭所有打开的文件 注意:文件关闭后,与其原文件号不再关联,该文件号可分配给 其它文件使用
LOF(#文件号):返回用Open语句打开的文件的字节数,若是 空文件则函数值为0。对于尚未打开的文件,可使用FileLen(文件 名)函数计算其长度。 例如: Dim FileLength As Long Open "File1.dat" For Input As #1 '打开文件进行读操作。 FileLength = LOF(1) '调用LOF函数计算文件长度。 Close #1 10.2.3 文件的关闭 对文件进行完各种操作之后,必须关闭。 Close [文件号列表] 文件号列表:代表一个或多个文件号。若省略,表示关闭Open语 句打开的所有文件。 例如: Close 1 '关闭文件号为1的文件 Close 1, 2 '关闭当前已打开的文件号为1和文件号为2的文件 Close '关闭所有打开的文件 注意:文件关闭后,与其原文件号不再关联,该文件号可分配给 其它文件使用
103顺序文件的读写 1031顺序文件的读操作(lput和 Line Input) 顺序文件是指文件中的记录连续存放,记录长短可不同,访问时 只能依顺序从第一条记录访问到最后一条记录。顺序文件的访问 方式适合访问普通的文本文件,如文字处理软件WPS、WORD、 或写字板等创建的文本文件。 当文件以Iput模式打开,就可以对文件进行顺序读操作 例如: Open" Filel. dat" For Input as#1'打开文件以便进行读操作 Input#1,Name, Serialnumber'将数据读入变量Name和 SerialNumber
10.3.1 顺序文件的读操作(Input和Line Input) 顺序文件是指文件中的记录连续存放,记录长短可不同,访问时 只能依顺序从第一条记录访问到最后一条记录。顺序文件的访问 方式适合访问普通的文本文件,如文字处理软件WPS、WORD、 或写字板等创建的文本文件。 当文件以Input模式打开,就可以对文件进行顺序读操作。 例如: 10.3 顺序文件的读写 Open "File1.dat" For Input As #1 '打开文件以便进行读操作 Input #1, Name, SerialNumber '将数据读入变量Name和 SerialNumber
VB提供的读取文件内容的方法有以下三种: (1)从已经打开的顺序文件中读出数据并将数据赋给变量 语法格式: Input#文件号,变量列表 其中变量列表以逗号分隔,从文件中读出的值分别赋给这些变量。 注意: ①文件中数据项目的顺序必须与变量列表中变量的顺序相同,数 据类型必须和变量列表中变量的数据类型匹配。 ②这些变量不可是一个数组或对象变量。 ③用 Input#语句只能读用 Write#语句(而不是 Printf语句)写 入的数据文件。因为 Write#语句可以确保将各个单独的数据域正 确分隔开。 例如: Dim cl c2 Open" myfile" For Input as#1·打开输入文件 Input #1, cl, c2 将数据读入两个变量。 Debug Print c1,c2在立即窗口中显示数据。 Close #1 关闭文件
VB提供的读取文件内容的方法有以下三种: (1)从已经打开的顺序文件中读出数据并将数据赋给变量。 语法格式:Input #文件号,变量列表 其中变量列表以逗号分隔,从文件中读出的值分别赋给这些变量。 注意: ① 文件中数据项目的顺序必须与变量列表中变量的顺序相同,数 据类型必须和变量列表中变量的数据类型匹配。 ② 这些变量不可是一个数组或对象变量。 ③ 用Input # 语句只能读用Write # 语句(而不是Print # 语句)写 入的数据文件。因为Write # 语句可以确保将各个单独的数据域正 确分隔开。 例如: Dim c1, c2 Open "myfile" For Input As #1 '打开输入文件。 Input #1, c1, c2 '将数据读入两个变量。 Debug.Print c1, c2 '在立即窗口中显示数据。 Close #1 '关闭文件
(2)从文件中读出指定数目的字符 语法格式: Input(读取的字符数,#文件号) Input函数返回它所读出的所有字符,包括逗号、回车符、空白列、 换行符、引号和前导空格等。 例如: Dim c Open" myfile" For Input as#1'打开文件 c=Input(l, #1) 读入一个字符并将其赋予变量c Close #1 关闭文件
(2)从文件中读出指定数目的字符。 语法格式:Input(读取的字符数,#文件号) Input函数返回它所读出的所有字符,包括逗号、回车符、空白列、 换行符、引号和前导空格等。 例如: Dim c Open "myfile" For Input As #1 '打开文件。 c = Input(1,#1) '读入一个字符并将其赋予变量c Close #1 '关闭文件
(3)从已经打开的顺序文件中读出一行字符,直到遇到回车符 (chr(13))或回车换行符(chr(13)+chr(10)为止。回车、换行 符将被跳过,而不会被附加到字符串上。 语法格式: Line Input#文件号,变量 其中变量为 String型或 Variant型。 例如 Dim linel As string Open" myfile" For Input as#1·打开文件。 Do While not eof(d) Line Input#1,line1'读入一行数据并将其赋予变量 linel。 Debug Print linel 在立即窗口中显示数据。 Loop Close #1 关闭文件
Dim line1 As String Open "myfile" For Input As #1 '打开文件。 Do While Not EOF(1) Line Input #1, line1 '读入一行数据并将其赋予变量line1。 Debug.Print line1 '在立即窗口中显示数据。 Loop Close #1 '关闭文件。 (3)从已经打开的顺序文件中读出一行字符,直到遇到回车符 (chr(13))或回车换行符(chr(13)+chr(10))为止。回车、换行 符将被跳过,而不会被附加到字符串上。 语法格式:Line Input #文件号,变量 其中变量为String型或Variant型。 例如: