据文 8
第8章数据文件 文件是指存放在外存储器(如磁盘)上的信息集合 使用文件可以将应用程序所处理的数据以文件的形式保 存起来 程序文件和数据文件 本章主要内容 数据文件概述 顺序文件 随机文件 文件基本操作 文件系统对象(FSO简介
文件是指存放在外存储器(如磁盘)上的信息集合 使用文件可以将应用程序所处理的数据以文件的形式保 存起来 程序文件和数据文件 本章主要内容 文件基本操作 文件系统对象(FSO)简介 第8章 数据文件
8.1数据文件概念 811数据文件的结构 数据文件由记录组成,记录由字段组成,字段由字符组成 字段 学号姓名 学号姓名 951001张三 951002李四 记录1 记录2 数据文件
8.1.1 数据文件的结构 数据文件由记录组成,记录由字段组成,字段由字符组成 记录1 数据文件 记录2 ………… 学号 姓名 951001 张三 … 学号 姓名 951002 李四 … 字段 8.1 数据文件概念
812文件类型 (1)顺序文件:文本文件。文件中的记录按顺序一个接 个地排列。无法灵活地随意存取它。只适用于有规律的 不经常修改的数据 (2)随机文件:随机文件的每一个记录都有固定的长度, 每一个记录都有记录号,这种文件的特点是允许用户存取文 件中任一个记录。可以同时进行读或写操作存入和读出速度 较快,数据容易更新 (3)二进制文件:可理解为长度为1的特殊的随机文件
(1)顺序文件:文本文件。文件中的记录按顺序一个接 一个地排列。无法灵活地随意存取它。只适用于有规律的、 不经常修改的数据 (2)随机文件:随机文件的每一个记录都有固定的长度, 每一个记录都有记录号,这种文件的特点是允许用户存取文 件中任一个记录。可以同时进行读或写操作存入和读出速度 较快,数据容易更新 (3)二进制文件:可理解为长度为1的特殊的随机文件 8.1.2 文件类型
8.1.3文件处理的一般步骤 (1)打开(或新建)文件 (2)进行读、写操作 系统设置文件指针,用来记住当前读写的位置 (3)关闭文件 ★
(1) 打开(或新建)文件 (2) 进行读、写操作 系统设置文件指针,用来记住当前读写的位置 (3) 关闭文件 8.1.3 文件处理的一般步骤
814文件的打开和关闭 1.打开文件(Open) Open文件名[For模式Aces取类型锁定As文件号Len=记录长度 说明:(1)文件名; (2)模式用于指定文件访问的方式,包括: Append-—从文件末尾添加 Binary二进制文件 Input-顺序输入 Output顺序输出 Random随机存取方式 (3)文件号(或称文件缓冲区) (4)存取类型:访问文件的类型,为Rea只读)、wite(写)、 Read write(读写) (5)锁定:限制其他用户或其他进程对文件进行读写操作 Shared(共享)、 Lock read(禁止读)、 Lock write(禁止写)、 Lock Read write(蔡止读写) (6)Len:用来指定每个记录的长度(字节数) 示例:Open"d:cj1dat" For Output As#1
1. 打开文件(Open) Open 文件名 [For 模式][Access 存取类型][锁定] As [#]文件号[Len=记录长度] 说明:(1)文件名; (2) 模式用于指定文件访问的方式,包括: Append——从文件末尾添加 Binary—— Input——顺序输入 Output—— Random——随机存取方式 (3)文件号(或称文件缓冲区) (4)存取类型:访问文件的类型,为Read(只读)、Write(只写)、 Read Write(读写) (5)锁定:限制其他用户或其他进程对文件进行读写操作 Shared(共享)、Lock Read(禁止读)、Lock Write(禁止写)、 Lock Read Write(禁止读写) (6)Len:用来指定每个记录的长度(字节数) 示例: Open "d:\cj1.dat" For Output As #1 8.1.4 文件的打开和关闭
2.关闭文件 Close) 打开的文件使用完后必须关闭。 关闭文件的语句格式: Close#文件号1团#文件号2 示例 Close #1 ★
2. 关闭文件(Close) 打开的文件使用完后必须关闭。 Close [#] 文件号1 [,[#] 文件号2 …] ] 示例: Close #1
8.1.5相关的语句和函数 1. Free File函数 格式: Free File 功能:返回一个在程序中没有使用的文件号 示例: Fileno= FreeFile OpenD: MyFile. txt For Output As FileNo 2.Seek语句和Seek函数 Sek函数的格式:Sek(文件号) 功能:返回文件指针的当前位置 对于随机文件,Sek函数返回指针当前所指的记录号。对于顺序文件, Sek函数返回指针所在的当前字节位置(从头算起的字节数) Sek语句的格式:Seek#文件号,位置 功能:将指定文件的文件指针设置在指定位置,以便进行下 次读或写操作 对于随机文件,“位置”是一个记录号;对于顺序文件,“位置”表示字节 位置
1. FreeFile 格式:FreeFile 功能:返回一个在程序中没有使用的文件号 示例: FileNo=FreeFile Open "D:\MyFile.txt" For Output As FileNo 2. Seek语句和Seek函数 Seek函数的格式:Seek(文件号) 功能:返回文件指针的当前位置 对于随机文件,Seek函数返回指针当前所指的记录号。对于顺序文件, Seek函数返回指针所在的当前字节位置(从头算起的字节数) Seek语句的格式:Seek [#]文件号,位置 功能:将指定文件的文件指针设置在指定位置,以便进行下 一次读或写操作 对于随机文件,“位置”是一个记录号;对于顺序文件,“位置”表示字节 位置 8.1.5 相关的语句和函数
3.E0函数 格式:Eof(文件号) 功能:测试与文件号相关的文件是否已达到文件的结束 位置。如果是,函数值为真值,否则为假值。 使用Eo是为了避免在文件结束处读取数据而发生错误 4.Lo函数 格式:Iof(文件名) 功能:返回与文件号相关的文件的总字节数 5.L0c函数 格式:Loc(文件号) 功能:返回与文件号相关的文件的当前读写位置
3. Eof函数 格式:Eof(文件号) 功能:测试与文件号相关的文件是否已达到文件的结束 位置。如果是,函数值为真值,否则为假值。 使用Eof是为了避免在文件结束处读取数据而发生错误 4. Lof 格式:Lof(文件名) 功能:返回与文件号相关的文件的总字节数 5.Loc 格式:Loc(文件号) 功能:返回与文件号相关的文件的当前读写位置
82顺序文件 821顺序文件的写入操作 以 Output或 Append方式打开文件,然后使用wrte#语句 或 Print语句将数据写入文件中 1. Write语句 格式: Write#文件号[,表达式表 功能:将表达式的值写到与文件号相关的顺序文件中 每个 Write语句向顺序文件写入一个记录(不定长),它会自 动地用逗号分开每个表达式的值。给字符串加上双引号 在最后一个字符写入后,插入一个回车换行符(Chr(13)+ Chr(10),以此作为记录结束的标记。 示例: Write#1," Good Afternoon",1998
8.2.1 顺序文件的写入操作 以Output或Append方式打开文件,然后使用Write#语句 或Print#语句将数据写入文件中 1. Write 格式:Write #文件号 [,表达式表] 功能:将表达式的值写到与文件号相关的顺序文件中 每个Write语句向顺序文件写入一个记录(不定长),它会自 动地用逗号分开每个表达式的值。给字符串加上双引号 在最后一个字符写入后,插入一个回车换行符(Chr(13) + Chr(10)) 示例:Write #1, "Good Afternoon", 1998 8.2 顺序文件