《vb程序设计文件》由会员分享,可在线阅读,更多相关《vb程序设计文件(89页珍藏版)》请在金锄头文库上搜索。
1、第第十十二二章章 文文件件第第1212章章文文 件件本章要点本章要点: :文件的根本概念文件的根本概念常用的文件操作语句和函数常用的文件操作语句和函数文件系统控件文件系统控件顺序文件顺序文件随机文件随机文件二进制文件二进制文件1第第十十二二章章 文文件件12.1 文件的根本概念文件的根本概念 文件文件: 指存储在外部介质上的数据的集合。指存储在外部介质上的数据的集合。分类分类: 从文件内容分从文件内容分程序文件、数据文件程序文件、数据文件 按存取方式分按存取方式分顺序文件、随机文件、二进制文件顺序文件、随机文件、二进制文件 顺序文件顺序文件: 普通的纯文本文件。普通的纯文本文件。 查找数据必须
2、按查找数据必须按记录记录顺序进行。顺序进行。 不能同时进行不能同时进行读写读写操作。操作。 随机文件随机文件: 以固定长度的记录为单位进行存储。以固定长度的记录为单位进行存储。 可以按任意顺序访问其中的数据。可以按任意顺序访问其中的数据。 可以同时进行读写操作。可以同时进行读写操作。 不能用字处理软件查看。不能用字处理软件查看。 二进制文件二进制文件: 以字节为单位进行访问。以字节为单位进行访问。 不能用字处理软件查看。不能用字处理软件查看。2第第十十二二章章 文文件件12.2 常用的文件操作常用的文件操作语语句和函数句和函数 VB VB提供了一些语法简单的函数和语句,对文件和提供了一些语法简
3、单的函数和语句,对文件和文件夹进行操作文件夹进行操作3第第十十二二章章 文文件件12.2.1 与文件、文件夹有关的函数和语句与文件、文件夹有关的函数和语句 1CurDir函数函数格式:格式:CurDir 功能:返回一个字符串值,表示某驱动器的当前功能:返回一个字符串值,表示某驱动器的当前路径。路径。参数:参数:是一个字符串表达式,它指定一是一个字符串表达式,它指定一个存在的驱动器。如果没有指定驱动器或其个存在的驱动器。如果没有指定驱动器或其值是零长度字符串值是零长度字符串 (“),那么函数,那么函数CurDir返回的是当前驱动器的工作路径。返回的是当前驱动器的工作路径。例:假设例:假设C为当前
4、驱动器,当前路径为为当前驱动器,当前路径为“C:WINDOWS,使用以下语句返回当前路径:,使用以下语句返回当前路径: Dim MyPath as string MyPath = CurDir 返回返回“C:WINDOWS MyPath = CurDir(C) 返回返回“C:WINDOWS4第第十十二二章章 文文件件2ChDir语句语句格式:格式:ChDir 功能:改变当前目录。功能:改变当前目录。参参数数:是是一一个个字字符符串串表表达达式式,表表示示将将成成为为新新的的当当前前目目录录的的名名称称。可可能能会会包包含含驱驱动动器器,如如果果没没有有指指定定驱驱动动器器,那那么么ChDir在
5、当前的驱动器上改变当前目录。在当前的驱动器上改变当前目录。说说明明:ChDir语语句句改改变变当当前前目目录录的的位位置置,但但不不会会改改变缺省驱动器位置。变缺省驱动器位置。例:使用以下语句将当前目录改为例:使用以下语句将当前目录改为“MyDir。 ChDir “MyDir例:假设当前的驱动器是例:假设当前的驱动器是“C:,以下语句将把,以下语句将把缺省目录改至缺省目录改至“D:MyDir,而而“C:仍是当前仍是当前驱动器驱动器 ChDir D:MyDir5第第十十二二章章 文文件件3ChDrive语句语句格式:格式:ChDrive 功能:改变当前的驱动器。功能:改变当前的驱动器。参参数数:
6、是是一一个个字字符符串串表表达达式式,它它指指定定一一个个存存在在的的驱驱动动器器。如如果果使使用用零零长长度度的的字字符符串串 (),那那么么当当前前的的驱驱动动器器不不会会改改变变;如如果果参参数中有多个字符,那么数中有多个字符,那么ChDrive只会使用首字符。只会使用首字符。例:使用例:使用ChDrive将当前的驱动器改变为将当前的驱动器改变为“D: ChDrive D6第第十十二二章章 文文件件4MkDir语句语句格式:格式:MkDir 功能:创立一个新的目录。功能:创立一个新的目录。参参数数:是是一一个个字字符符串串表表达达式式,表表示示要要创创立立的的目目录录的的名名称称。可可以
7、以包包含含驱驱动动器器。如如果果没没有有指指定定驱驱动动器器,那那么么MkDir会会在在当当前前驱动器上创立新的目录。驱动器上创立新的目录。例:在当前驱动器下建立新的目录例:在当前驱动器下建立新的目录MyDir: MkDir MyDir例:在例:在D驱动器下建立新的目录驱动器下建立新的目录MyDir: MkDir D: MyDir7第第十十二二章章 文文件件5RmDir语句语句格式:格式:RmDir 功能:删除一个存在的目录。功能:删除一个存在的目录。参参数数:是是一一个个字字符符串串表表达达式式,用用来来指指定定要要删删除除的的目目录录。可可以以包包含含驱驱动动器器。如如果果没没有有指指定定
8、驱驱动动器器,那那么么RmDir语语句句会会在当前驱动器上删除在当前驱动器上删除指定的目录。指定的目录。说说明明:如如果果想想要要使使用用RmDir来来删删除除一一个个含含有有文文件件的目录,那么会发生错误。的目录,那么会发生错误。例:删除例:删除C驱动器下的目录驱动器下的目录MyDir: RmDir C:MyDir8第第十十二二章章 文文件件6Dir函数函数格式:格式:Dir ( ,)功功能能:返返回回匹匹配配及及指指定定的的第第一一个个文件名或目录名,是一个文件名或目录名,是一个String类型的字符串。类型的字符串。参数:参数:字字符符串串表表达达式式,指指定定文文件件或或目目录录的的名
9、名称称,可可以以包包含含驱驱动动器器及及目目录录。如如果果没没有有找找到到,那么会返回零长度字符串,那么会返回零长度字符串(“)。:常常量量或或数数值值表表达达式式,指指定定文文件件、目目录录的的属属性性。如如果果省省略略,那那么么会会返返回回匹匹配配但但不不包包含含属属性性的的文文件件名名。参参数数的的设设置置值值见见P236表表12-1,参数可以组合使用。,参数可以组合使用。9第第十十二二章章 文文件件例:设用例:设用Dim语句定义以下三个变量:语句定义以下三个变量: Dim MyFile, MyPath, MyName查找查找“C:WindowsWin.ini是否存在,如果该是否存在,如
10、果该文件存在,返回文件存在,返回“Win.ini: MyFile = Dir(C:WindowsWin.ini)查找查找“C:Windows下所有后缀是下所有后缀是“.ini的文的文件是否存在,如果有多个件是否存在,如果有多个“.ini文件存在,文件存在,Dir函数将返回第一个满足匹配条件的文件名:函数将返回第一个满足匹配条件的文件名: MyFile = Dir(C:Windows*.ini) 假设第二次调用假设第二次调用Dir函数,但不带任何参数,那函数,但不带任何参数,那么函数将返回同一目录下的下一个么函数将返回同一目录下的下一个“.ini文件:文件: MyFile = Dir说明:说明:
11、Dir支持多字符支持多字符(*)和单字符和单字符(?)的通配符来的通配符来指定多个文件。指定多个文件。10第第十十二二章章 文文件件返回属性为隐藏的只读文件返回属性为隐藏的只读文件test.txt的名称:的名称: MyFile = Dir(test.txt, vbHidden+vbReadOnly)如果文件夹如果文件夹windows存在,显示其名称:存在,显示其名称: MyPath = c:windows 指定路径。指定路径。 Print Dir(MyPath,vbDirectory)11第第十十二二章章 文文件件12.2.2 对文件和文件夹的操纵对文件和文件夹的操纵1FileCopy语句语句
12、格式:格式:FileCopy , 功能:复制文件。功能:复制文件。参数:参数:字符串表达式,表示要被复制的源:字符串表达式,表示要被复制的源文件名。可以包含驱动器及目录;文件名。可以包含驱动器及目录;:字符串表达式,指定要复制的目:字符串表达式,指定要复制的目标文件名。可以包含驱动器及目录。标文件名。可以包含驱动器及目录。说明:对一个已翻开的文件使用说明:对一个已翻开的文件使用FileCopy语句将产语句将产生错误。生错误。例:将源文件例:将源文件srcfile.txt复制到复制到D盘且目标文件名为盘且目标文件名为destfile.txt: FileCopy srcfile.txt, d:de
13、stfile.txt 12第第十十二二章章 文文件件2Kill语句语句格式:格式:Kill 功能:删除由功能:删除由指定的文件。指定的文件。参参数数:是是字字符符串串表表达达式式,指指定定被被删删除除的的文件。可以包含目录及驱动器。文件。可以包含目录及驱动器。说说明明:可可以以使使用用多多字字符符(*)和和单单字字符符(?)的的通通配配符符来来指指定定多多个个文文件件,但但使使用用时时一一定定要要慎慎重重,以免误删了重要文件。以免误删了重要文件。例:删除例:删除testfile.txt文件。文件。 Kill TestFile.txt 删除当前文件夹下所有扩展名为删除当前文件夹下所有扩展名为.t
14、xt的文件的文件 Kill *.txt13第第十十二二章章 文文件件3Name语句语句格式:格式:Name As 功能:重新命名文件或目录的名称。功能:重新命名文件或目录的名称。参数:参数:是是一一字字符符串串表表达达式式,表表示示已已存存在在的的文件名或目录名,可以包含驱动器及目录;文件名或目录名,可以包含驱动器及目录;是是一一字字符符串串表表达达式式,表表示示新新的的文文件件名名或或目目录录名名,可可以以包包含含目目录录及及驱驱动动器器。如如果果所所指指定定的的文文件件或或目目录录已已存存在在,此此语语句句将将出错。出错。14第第十十二二章章 文文件件说明:说明:NameName语语句句能
15、能重重新新命命名名文文件件并并可可将将其其移移动动到到一一个个不不同同的目录中。的目录中。NameName语句也可在不同的驱动器间移动文件。语句也可在不同的驱动器间移动文件。在已翻开的文件上使用在已翻开的文件上使用NameName语句将会产生错误。语句将会产生错误。在改变翻开的文件名之前,必须先关闭该文件。在改变翻开的文件名之前,必须先关闭该文件。NameName语语句句参参数数不不能能包包括括多多字字符符(*)(*)和和单单字字符符(?)(?)的的通通配符。配符。例:将例:将oldfile.txt更名为更名为newfile.txt。 Name oldfile.txt As newfile.t
16、xt 将将C:MyDiroldfile更名为更名为C:NewDirnewfile: OldName = C:MyDiroldfile NewName = NewDirnewfile“ 改文件名并移动文件改文件名并移动文件 Name OldName As NewName15第第十十二二章章 文文件件4FileDateTime 函数函数格式:格式:FileDateTime()功功能能:返返回回一一个个Date类类型型的的数数据据,表表示示文文件件或或目目录录被创立或最后被修改的日期和时间。被创立或最后被修改的日期和时间。参参数数:是是一一个个字字符符串串表表达达式式,用用来来指指定定文文件件名名或
17、或目目录录名名。可可以以包包含含驱驱动动器器和目录。和目录。例:获得文件例:获得文件c:test.txt最后被修改的时间,日期最后被修改的时间,日期与时间的显示格式依系统的地区设置而定。与时间的显示格式依系统的地区设置而定。 Print FileDateTime(c:test.txt) 显示结果为:显示结果为: 1/12/2005 5:35:27 PM16第第十十二二章章 文文件件5FileLen 函数函数格式:格式:FileLen()功功能能:返返回回以以字字节节为为单单位位表表示示的的文文件件的的长长度度,Long类型。类型。参参数数:是是一一个个字字符符串串表表达达式式,用用来来指指定定
18、文件名。可以包含驱动器及目录。文件名。可以包含驱动器及目录。说说明明:当当调调用用FileLen函函数数时时,如如果果所所指指定定的的文文件件已已经经翻翻开开,那那么么返返回回的的值值是是这这个个文文件件在在翻翻开开前前的的长长度度。假假设设要要获获得得一一个个已已翻翻开开文文件件的的长长度,应使用度,应使用LOF函数。函数。例:使用例:使用FileLen来获得文件来获得文件c:testfile.txt的长度。的长度。 Dim MySize MySize = FileLen(c:testfile.txt)17第第十十二二章章 文文件件6GetAttr函数函数格式:格式:GetAttr()功功能
19、能:获获得得文文件件或或目目录录的的属属性性,是是一一个个Integer类类型的值。型的值。参参数数:是是字字符符串串表表达达式式,用用来来指指定定一一文文件件或或目目录录。可可以以包包含含驱驱动动器器及及目目录。文件或目录的属性值见录。文件或目录的属性值见P238表表12-2。说说明明:假假设设要要判判断断文文件件是是否否具具有有某某个个属属性性,需需要要将将GetAttr函函数数的的返返回回值值与与表表12-2所所列列的的属属性性值值按按位位进进行行And运运算算,如如果果所所得得的的结结果果不不为零,那么表示设置了这个属性值。为零,那么表示设置了这个属性值。 18第第十十二二章章 文文件
20、件 例例 : 在在 下下 面面 的的 And表表 达达 式式 中中 , 如如 果果 文文 件件c:testfile.txt的的档档案案属属性性(Archive)没没有有设设置置,那那么么返返回回值值为为零零;如如果果文文件件的的档档案案属属性性已已设设置置,那那么么返回非零的数值:返回非零的数值: Result = GetAttr(c:testfile.txt) And vbArchive 如如果果文文件件c:apple.txt具具有有隐隐藏藏属属性性,那那么么以以下下语句返回语句返回2: Print GetAttr(c:apple.txt) 如如果果文文件件MyAttr具具有有隐隐藏藏和和只
21、只读读属属性性,那那么么以以下语句返回非零值:下语句返回非零值: Print MyAttr And (vbHidden + vbReadOnly) 如如果果MyDir为为一一目目录录,那那么么以以下下语语句句返返回回值值为为16: Print GetAttr(MyDir)19第第十十二二章章 文文件件7SetAttr 语句语句格式:格式:SetAttr ,功能:设置文件属性功能:设置文件属性参数:参数:是一个字符串表达式,用来指定文件名称是一个字符串表达式,用来指定文件名称是是一一个个常常量量或或数数值值表表达达式式,表表示示文文件件的的属属性性。值如表值如表12-2所示。所示。说明:为一个已
22、翻开的文件设置属性会产生错误。说明:为一个已翻开的文件设置属性会产生错误。例:设置文件例:设置文件c:testfile.txt具有隐藏和只读属性。具有隐藏和只读属性。 SetAttr c:testfile.txt,vbHidden+vbReadOnly20第第十十二二章章 文文件件【例【例12-1】在】在windows系统中,查看某文件属性时系统中,查看某文件属性时能看到类似以下图所示的对话框。使用能看到类似以下图所示的对话框。使用VB的函数的函数和语句实现该对话框。和语句实现该对话框。 21第第十十二二章章 文文件件设计界面:设计界面: Text1Label8Check2Check1Labe
23、l3Label5CommonDialog122第第十十二二章章 文文件件Private Sub Form_Load() Dim filename As String CommonDialog1.ShowOpen 显示显示“翻开对话框翻开对话框 获得文件名获得文件名 filename=CommonDialog1.filename Text1.Text = filename 显示文件名显示文件名 获得选中文件所在的驱动器获得选中文件所在的驱动器 Label3.Caption = Left(CurDir(filename),3) 获得文件长度获得文件长度 Label5.Caption=FileLen
24、(filename) 获得文件创立时间获得文件创立时间 Label8.Caption = FileDateTime(filename) 代码如下:代码如下:23第第十十二二章章 文文件件 判断并显示文件是否具有只读属性判断并显示文件是否具有只读属性 Check1.Value=GetAttr(filename) And _ vbReadOnly 判断并显示文件是否为隐藏文件判断并显示文件是否为隐藏文件 Check2.Value = GetAttr(filename) And _ vbHiddenEnd Sub24第第十十二二章章 文文件件12.3 文件系统控件文件系统控件 作用:自动从操作系统获
25、取信息,让用户作用:自动从操作系统获取信息,让用户了解有关驱动器、目录和文件的当前状态。了解有关驱动器、目录和文件的当前状态。三个内部控件:三个内部控件: 驱动器列表框驱动器列表框(DriveListBox) 录列表框录列表框(DirListBox) 文件列表框文件列表框(FileListBox)25第第十十二二章章 文文件件 1. 作用作用 显示系统中所有有效磁盘驱动器显示系统中所有有效磁盘驱动器 12.3.1 驱动器列表框驱动器列表框(DriveListBox)a) 工具箱中的工具箱中的DriveListBoxb) DriveListBox的设计状态的设计状态c) DriveListBox
26、的运行状态的运行状态 2. 外观外观:26第第十十二二章章 文文件件3. 属性属性Drive属性:返回或设置驱动器名称。可以是任何一属性:返回或设置驱动器名称。可以是任何一个有效的字符串表达式,该字符串的第一个字母个有效的字符串表达式,该字符串的第一个字母必须是一个有效的磁盘驱动器符号。如必须是一个有效的磁盘驱动器符号。如 “C:或或“D说明:说明:Drive属性只能在运行时设置,当被设置后,驱动器属性只能在运行时设置,当被设置后,驱动器盘符出现在列表框的顶部。盘符出现在列表框的顶部。从列表框中选择驱动器并不能自动地变更系统当前从列表框中选择驱动器并不能自动地变更系统当前的工作驱动器,要改变系
27、统当前的工作驱动器需的工作驱动器,要改变系统当前的工作驱动器需要使用要使用ChDrive语句。语句。例如:例如:Drive1.Drive = e: 设置驱动器设置驱动器ChDrive Drive1.Drive 将将e:变成当前的工作驱动器变成当前的工作驱动器27第第十十二二章章 文文件件4. 事件事件Change事件:中选择一个新驱动器或通过代码事件:中选择一个新驱动器或通过代码 改改变变 Drive 属性时发生。属性时发生。例:将选择的驱动器设置为当前驱动器。例:将选择的驱动器设置为当前驱动器。 Private Sub Drive1_Change() ChDrive Drive1.Drive
28、 End Sub28第第十十二二章章 文文件件1. 作用作用 通过显示一个树型的目录结构来列出当前驱动器通过显示一个树型的目录结构来列出当前驱动器下的分层目录,其中每一行代表一级目录,当用鼠下的分层目录,其中每一行代表一级目录,当用鼠标双击某一目录时,将翻开该目录并显示其子目录。标双击某一目录时,将翻开该目录并显示其子目录。12.3.2 目录列表框目录列表框(DirListBox) 2. 外观外观a) 工具箱中的工具箱中的DirListBoxb) DirListBox的设计状态的设计状态c) DirListBox的运行状态的运行状态29第第十十二二章章 文文件件3. 属性属性Path属性:返回
29、或设置当前工作目录的完整路径属性:返回或设置当前工作目录的完整路径包括驱动器符号。包括驱动器符号。说明:说明:当改变当改变Path属性时,将激活一个属性时,将激活一个Change事件。事件。在设计阶段,该属性不可用。在设计阶段,该属性不可用。设置设置Path属性相当于改变了目录列表框的当前目录。属性相当于改变了目录列表框的当前目录。在目录列表框中选择目录并不能改变系统的当前在目录列表框中选择目录并不能改变系统的当前目录,要想真正改变系统当前目录必须使用目录,要想真正改变系统当前目录必须使用ChDir语句。语句。例如:例如: 将将“c:system目录变为系统当前的工作目目录变为系统当前的工作目
30、录录 ChDir c:system30第第十十二二章章 文文件件4. 事件事件 Change当双击一个目录项或通过代码改变当双击一个目录项或通过代码改变 Path 属性时发生。属性时发生。 例例: 将选择的路径设置为当前路径将选择的路径设置为当前路径 Private Sub Dir1_Change() ChDir Dir1.Path End Sub31第第十十二二章章 文文件件1. 作用作用 显示特定目录下的文件。显示特定目录下的文件。12.3.3 文件列表框文件列表框(FileListBox) 2. 外观外观 a) 工具箱中的工具箱中的FileListBoxb) FileListBox的设计
31、状态的设计状态c) FileListBox的运行状态的运行状态32第第十十二二章章 文文件件3. 属性属性1 Path属性属性 设置或返回当前工作目录的完整路径。设置或返回当前工作目录的完整路径。 2 FileName属性属性 设置或返回所选文件的路径和文件名。设置或返回所选文件的路径和文件名。 设置时设置时: 文件名可以带路径文件名可以带路径 返回时返回时: 文件名不含路径名文件名不含路径名3 Pattern属性属性 设置对显示文件的过滤。设置对显示文件的过滤。 例例: Filelistbox1.Pattern= *.EXE ; *.COM 只显示以只显示以 .EXE和和 .COM为后缀的文
32、件为后缀的文件4ReadOnly、Archive、System、Normal、Hidden属性属性 指定在指定在FileListBox控件中所显示文件的类型。取控件中所显示文件的类型。取值位值位True或或False。33第第十十二二章章 文文件件4. 事件事件 1Click:当用户单击文件列表框中的文件名时,:当用户单击文件列表框中的文件名时,激活激活Click事件。事件。2DblClick事件:当用户双击文件列表框中的文事件:当用户双击文件列表框中的文件名时,激活件名时,激活Click或或DblClick事件。事件。34第第十十二二章章 文文件件【例【例12-2】通过控件的关联实现三个控件
33、间的联动通过控件的关联实现三个控件间的联动 Dir1Driver1File1Text135第第十十二二章章 文文件件Private Sub Form_Load() Text1.Text = Drive1.Drive = c: 初始化驱动器列表框初始化驱动器列表框End SubPrivate Sub Drive1_Change() 使驱动器列表框和目录列表框同步使驱动器列表框和目录列表框同步 Dir1.Path = Drive1.Drive End SubPrivate Sub Dir1_Change() 使目录列表框和文件列表框同步使目录列表框和文件列表框同步 File1.Path = Dir
34、1.Path End SubPrivate Sub File1_Click() 在文本框中显示文件名在文本框中显示文件名 Text1.Text = File1.FileName End Sub代码如下:代码如下:36第第十十二二章章 文文件件12.4 顺序文件顺序文件 顺序文件顺序文件: 普通的纯文本文件,可由任何字处理软件建立、访问。普通的纯文本文件,可由任何字处理软件建立、访问。只能按顺序存取数据。只能按顺序存取数据。 例例: 文件文件AA.DAT内容如下内容如下: zhang san,85,90 li si,70,66 wang wu,90,89记录记录: 行行域域: 列;字段列;字段数
35、据项数据项顺序文件操作顺序文件操作: 翻开文件、读翻开文件、读/写文件、关闭文件写文件、关闭文件37第第十十二二章章 文文件件1. 顺序文件的翻开顺序文件的翻开格式格式: Open For Input|Output|Append As # Len=功能功能: 按指定的方式翻开文件,并指定一文件号。按指定的方式翻开文件,并指定一文件号。说明:说明:1:字符串表达式,可包含驱动器符及:字符串表达式,可包含驱动器符及文件夹名。文件夹名。2翻开文件的方式有以下三种:翻开文件的方式有以下三种:Input:以只读方式翻开文件。当文件不存在时出:以只读方式翻开文件。当文件不存在时出错。错。12.4.1 顺序
36、文件的翻开和关闭顺序文件的翻开和关闭38第第十十二二章章 文文件件Output:以写方式翻开文件。如果文件不存在,:以写方式翻开文件。如果文件不存在,就创立一个新的文件;如果文件已经存在,那么就创立一个新的文件;如果文件已经存在,那么删除文件中的原有数据,从头开始写入数据。删除文件中的原有数据,从头开始写入数据。Append:以添加的方式翻开文件。如果文件不:以添加的方式翻开文件。如果文件不存在,就创立一个新的文件;如果文件已经存在,存在,就创立一个新的文件;如果文件已经存在,那么翻开文件并保存原有的数据,写数据时从文那么翻开文件并保存原有的数据,写数据时从文件尾开始进行添加。件尾开始进行添加
37、。3:511。使用函数。使用函数FreeFile可以可以为翻开的文件分配系统中未被使用的文件号。为翻开的文件分配系统中未被使用的文件号。#号可以省略。号可以省略。4:可使用的缓冲区的字节数。:可使用的缓冲区的字节数。39第第十十二二章章 文文件件例例: 1 在在C盘盘Data文件夹下建立一个名为文件夹下建立一个名为stud.dat的的文件文件 Open C:DataStud.dat For Output As #12 翻开当前盘当前文件夹下的翻开当前盘当前文件夹下的Salary.dat文件,文件,以便从中读取数据以便从中读取数据 Open Salary.dat For Input As #83
38、 翻开翻开C盘盘Data文件夹下名为文件夹下名为Stud.dat的文件,的文件,以便在文件末尾添加数据以便在文件末尾添加数据 Open C:DataStud.dat For Append As 240第第十十二二章章 文文件件2. 顺序文件的关闭顺序文件的关闭格式:格式: Close 说明:说明: 缺省时关闭所有翻开的文件缺省时关闭所有翻开的文件例例: 1关闭文件号为关闭文件号为1的文件的文件 Close #1 2关闭文件号为关闭文件号为1、2、8的文件的文件 Close #1, 2, #8 文件号前的文件号前的“#号可以省号可以省略略 3关闭所有翻开的文件关闭所有翻开的文件 Close41第
39、第十十二二章章 文文件件1.顺序文件的写操作顺序文件的写操作 (1) Write #语句语句格式格式: Write #,功能功能: 将将的内容写入指定的文件中。的内容写入指定的文件中。 例例: Write #1, A1, A2, A3说明说明:中各项之间要用逗号分开中各项之间要用逗号分开每一项可以是常量、变量或表达式每一项可以是常量、变量或表达式写到文件中的各数据间自动插入逗号,字符串自动写到文件中的各数据间自动插入逗号,字符串自动加上双引号加上双引号所有数据写完后,在最后参加一个回车换行符所有数据写完后,在最后参加一个回车换行符不含不含时,将在文件中写入一空行时,将在文件中写入一空行12.4
40、.2 顺序文件的读写顺序文件的读写42第第十十二二章章 文文件件【例【例12-3】建立一个新的学生成绩文件,将输入的】建立一个新的学生成绩文件,将输入的学生成绩添加到文件中。界面如以下图。学生成绩添加到文件中。界面如以下图。 CommonDialog1Text1Text2Text3Text4Command1Command2添加添加: 工程工程 部件部件 选择选择 “Microsoft Common Dialog Controls 6.043第第十十二二章章 文文件件Private Sub Form_Load() CommonDialog1.ShowSave Open CommonDialog1
41、.FileName For Output As #2End SubPrivate Sub Command1_Click() 添加添加 no = Text1.Text : na = Text2.Text g1 = Val(Text3.Text) : g2 = Val(Text4.Text) Write #2, no, na, g1, g2 Text1.Text = : Text2.Text = Text3.Text = : Text4.Text = End SubPrivate Sub Command2_Click() 退出退出 Close #2 EndEnd Sub 与与Append的区别?的
42、区别?44第第十十二二章章 文文件件(2) Print #语句语句 格式格式: Print # , 功能功能:将将 的内容写入指定的文件中。的内容写入指定的文件中。说明说明:当当 用逗号分隔时用逗号分隔时,采用分区格式输出采用分区格式输出当当 用分号分隔时用分号分隔时,采用紧凑格式输出采用紧凑格式输出所有项将在一行内输出,输出后将自动换行所有项将在一行内输出,输出后将自动换行可以使用可以使用Spc()函数和函数和Tab()函数函数 将例将例12-1中的中的Write #语句改用语句改用Print #语句语句: Print #2, no, na, g1, g245第第十十二二章章 文文件件用用:
43、 Print #2, no; na; g1; g2 生成的数据生成的数据: 001张三张三 87 92 002李四李四 76 89 003王五王五 93 86用用: Write #2, no, na, g1, g2 生成的数据生成的数据: 001,张三张三,87,92 002,李四李四,76,89 003,王五王五,93,86用用: Print #2, no, na, g1, g2 生成的数据生成的数据: 001 张三张三 87 92 002 李四李四 76 89 003 王五王五 93 8646第第十十二二章章 文文件件2.顺序文件的读操作顺序文件的读操作(1) Input #语句语句格式格
44、式: Input # , 功能功能: 从文件中读取数据,按顺序给变量从文件中读取数据,按顺序给变量列列表中的表中的变量赋值。变量赋值。说明说明: 常用于读取用常用于读取用Write语句生成的文件数据。语句生成的文件数据。 按顺序读,每读完一条记录,记录指针向后按顺序读,每读完一条记录,记录指针向后移动一条记录。移动一条记录。EOF函数函数: EOF()。 当到达文件结尾时当到达文件结尾时, EOF函数为函数为True,否那么为否那么为False。47第第十十二二章章 文文件件【例【例12-4】读入上例生成的文件,并计算每个学生】读入上例生成的文件,并计算每个学生的平均成绩,界面如下,其中,通用
45、对话框控件的平均成绩,界面如下,其中,通用对话框控件用于翻开一个用于翻开一个“翻开文件对话框,在对话框中所翻开文件对话框,在对话框中所选择的文件将作为要显示的文件。选择的文件将作为要显示的文件。CommonDialog1Command1Text148第第十十二二章章 文文件件Private Sub Command1_Click() CommonDialog1.ShowOpen Open CommonDialog1.FileName For Input As #3 Text1.Text = Do While Not EOF(3) 装入用装入用Write #语句生成的文件语句生成的文件 Input
46、 #3, num, nam, s1, s2 ave = (s1 + s2) / 2 Text1.Text = Text1.Text & num & & nam _ & & Str(s1) & & Str(s2) & _ & Str(ave) & Chr(13) & Chr(10) Loop Close #3End Sub代码如下:代码如下:49第第十十二二章章 文文件件(2) Line Input #语句语句格式格式: Line Input # , 功能功能: 从文件中读取一行数据,作为字符串存放在从文件中读取一行数据,作为字符串存放在 中。中。【例【例12-5】将例】将例12-3代码中的代码
47、中的Write 语句改用语句改用“Print #2, no; na; g1; g2生成一个学生成绩数生成一个学生成绩数据文件,然后读取该数据文件。据文件,然后读取该数据文件。 CommonDialog1Text1Command150第第十十二二章章 文文件件Private Sub Command1_Click() CommonDialog1.ShowOpen Open CommonDialog1.FileName For Input As #3 Do While Not EOF(3) 读取用文件中的当前行记录给变量读取用文件中的当前行记录给变量SS Line Input #3, SS Text
48、1.Text = Text1.Text & SS & vbCrLf Loop Close #3End Sub代码如下:代码如下:51第第十十二二章章 文文件件(3) Input函数函数格式:格式:=Input(整数整数,#)功功能能:从从指指定定文文件件的的当当前前位位置置一一次次读读取取指指定定个个数数的字符,并赋值给变量。的字符,并赋值给变量。例如,有如下程序段:例如,有如下程序段: Open a:d1.dat For Input As #1 MyStr = Input(6, #1) Text1.Text = MyStr假假设设数数据据文文件件d1.dat的的内内容容为为:Visual B
49、asic,那那么么执执行行上上述述程程序序段段后后,文文本本框框中中显显示示Visua,只读取了只读取了6个字符。个字符。52第第十十二二章章 文文件件(4) InputB函数函数格式:格式:=InputB(字节数字节数,#)功能:从指定文件的当前位置一次读取指定字节功能:从指定文件的当前位置一次读取指定字节数的数据,并赋值给变量。数的数据,并赋值给变量。说明:说明:InputB函数读出的是函数读出的是ANSI格式的字符,必格式的字符,必须使用须使用StrConv函数转换成函数转换成Unicode字符才能被正字符才能被正确地显示在屏幕上。确地显示在屏幕上。53第第十十二二章章 文文件件【例【例
50、12-6】使用】使用InputB函数从文件中读数据。函数从文件中读数据。Private Sub Command1_Click() Dim FileNum Dim sString As String FileNum = FreeFile Open c:testfile2.txt For Output As FileNum Write #FileNum, InputB函数测试函数测试 Close (FileNum) Open c:testfile2.txt For Input As FileNum sString = StrConv(InputB(LOF(FileNum), _ #FileNum)
51、, vbUnicode) 使用以下语句输出的将是乱码使用以下语句输出的将是乱码 sString = InputB(LOF(FileNum), #FileNum) MsgBox sStringEnd Sub54第第十十二二章章 文文件件【例【例12-7】读取例】读取例12-3生成的学生成绩文件,计算生成的学生成绩文件,计算每个学生的平均成绩,计算每门课的平均成绩,每个学生的平均成绩,计算每门课的平均成绩,将结果显示于文本框中,同时将计算结果与原数将结果显示于文本框中,同时将计算结果与原数据保存于另外一个指定的文件中,设计界面如以据保存于另外一个指定的文件中,设计界面如以下图所示。下图所示。Com
52、monDialog1Text1Text255第第十十二二章章 文文件件分析分析: 设立三个数组设立三个数组: 学号、姓名、成绩学号、姓名、成绩学号学号NUM 姓名姓名NAM成绩成绩G数学数学G(N,1)英语英语G(N,2)NUM(1)NAM(1)G(1,1)G(1,2)NUM(2)NAM(2)G(2,1)G(2,2)NUM(3)NAM(3)G(3,1)G(3,2)NUM(N)NAM(N)G(N,1)G(N,2)56第第十十二二章章 文文件件Dim Num(100) As String, Nam(100) As StringDim G(100, 2) As Integer, N As Integ
53、erPrivate Sub Command1_Click() 读入数据读入数据 CommonDialog1.ShowOpen Open CommonDialog1.FileName For Input As #3 N = 0 Do While Not EOF(3) N = N + 1 Input #3, Num(N), Nam(N), G(N, 1), G(N, 2) Text1.Text = Text1.Text & & Num(N) & _ & Nam(N) & & Str(G(N, 1) & _ & Str(G(N, 2) & & Chr(13) & Chr(10) LoopEnd Su
54、b57第第十十二二章章 文文件件Private Sub Command2_Click() 计算平均成绩计算平均成绩 CommonDialog1.ShowSave Open CommonDialog1.FileName For Output As #4 SUM1 = 0 SUM2 = 0 Text2.Text = For i = 1 To N Ave = (G(i, 1) + G(i, 2) / 2 Write #4, Num(i), Nam(i), G(i, 1), G(i, 2), Ave Text2.Text = Text2.Text & & Num(i) & _ & Nam(i) & &
55、 Str(G(i, 1) & & _ Str(G(i, 2) & & Str(Ave) & vbCrLf SUM1 = SUM1 + G(i, 1): SUM2 = SUM2 + G(i, 2) Next i58第第十十二二章章 文文件件 Text2.Text = Text2.Text & 总平均总平均 & & _ Str(SUM1 / N) & & Str(SUM2 / N) Write #4, 总平均总平均, SUM1 / N, SUM2 / NEnd SubPrivate Sub Command3_Click() 退出退出 Close #3, #4 EndEnd Sub59第第十十二二章
56、章 文文件件12.5 随机文件随机文件随机文件中的数据是以记录的形式存放的。通过随机文件中的数据是以记录的形式存放的。通过指定记录号就可以快速地访问相应的记录。指定记录号就可以快速地访问相应的记录。随机文件中的每条记录的长度是相同的,每条记随机文件中的每条记录的长度是相同的,每条记录相对应的字段的数据类型必须相同。录相对应的字段的数据类型必须相同。翻开随机文件后,在读出数据的同时允许对数据翻开随机文件后,在读出数据的同时允许对数据进行修改、写入。进行修改、写入。为了能准确地读写数据,在对随机文件操作前常为了能准确地读写数据,在对随机文件操作前常常先定义某种用户自定义类型,然后通过定义该常先定义
57、某种用户自定义类型,然后通过定义该类型的变量来保存一条记录的信息,再翻开随机类型的变量来保存一条记录的信息,再翻开随机文件进行读写操作文件进行读写操作对随机文件操作完成后要关闭文件。对随机文件操作完成后要关闭文件。60第第十十二二章章 文文件件例:在窗体的通用声明段中自定义例:在窗体的通用声明段中自定义Students类型用类型用来保存学生的信息:来保存学生的信息: Private Type Students 自定义类型自定义类型Students Dept As String * 20 系系 ClassNo As String * 10 班级班级 Name As String 姓名姓名 Age
58、 As Integer 年龄年龄 End Type 61第第十十二二章章 文文件件声明一个声明一个Students类型的变量类型的变量Stud,为,为Stud的每的每个元素赋值:个元素赋值:Private Sub Form_Click() Dim Stud As Students Stud.Dept = 计算机系计算机系 Stud.ClassNo = 软件软件2001-1 Stud.Name = 张三张三 Stud.Age = 18End Sub 可以将可以将Stud变量值作为一条记录写到随机文件中,这时,变量值作为一条记录写到随机文件中,这时,随机文件记录的长度就是随机文件记录的长度就是St
59、ud变量的长度,该长度可以使变量的长度,该长度可以使用用Len(Stud)获取。也可以将某个包含这种学生信息的随机获取。也可以将某个包含这种学生信息的随机文件的一条记录读取到一个文件的一条记录读取到一个Students类型的变量中。类型的变量中。62第第十十二二章章 文文件件12.5.1 随机文件的翻开和关闭随机文件的翻开和关闭1. 随机文件的翻开随机文件的翻开 使用之前必须先翻开文件。使用之前必须先翻开文件。 格式:格式:Open For Random As Len = 说明:说明: 1) For Random表示翻开随机文件,可以省略。表示翻开随机文件,可以省略。 2) 随机文件中每条记录
60、的长度。随机文件中每条记录的长度。 3) 假设翻开的文件不存在,那么建立一个新的文假设翻开的文件不存在,那么建立一个新的文件。件。2. 随机文件的关闭随机文件的关闭 使用使用Close语句语句63第第十十二二章章 文文件件12.5.2 随机文件的读写随机文件的读写1. 写文件写文件 格式:格式: Put #, 功能:将一个变量的数据写入随机文件中。功能:将一个变量的数据写入随机文件中。 说明:说明: 1) : 假设文件中已有此记录,那么该记假设文件中已有此记录,那么该记录将被新数据覆盖;假设文件中无此记录,那么在录将被新数据覆盖;假设文件中无此记录,那么在文件中添加一条新记录。如果省略文件中添
61、加一条新记录。如果省略,那,那么写入数据的记录号为上次读或写的记录的记录号么写入数据的记录号为上次读或写的记录的记录号加加1。 2) : 通常是一个自定义类型的变量,也通常是一个自定义类型的变量,也可以是其他类型的变量。可以是其他类型的变量。64第第十十二二章章 文文件件2. 读文件读文件 格式格式: Get # , , 功能功能: 将一个随机文件的指定记录读入变量中。将一个随机文件的指定记录读入变量中。 说明:说明:的含义与的含义与Put语句相同。语句相同。通常是用户自定义类型,用于接收通常是用户自定义类型,用于接收从随机文件中读取的记录。从随机文件中读取的记录。65第第十十二二章章 文文件
62、件【例【例12-8】建立学生成绩随机文件。界面如以下图。】建立学生成绩随机文件。界面如以下图。CommonDialog1Text1Text2Text3Text466第第十十二二章章 文文件件Private Type StudRec No As String * 6 学号学号 Na As String * 8 姓名姓名 Math As Integer 数学成绩数学成绩 English As Integer 英语成绩英语成绩End TypeDim StudTab As StudRec在窗体模块的通用声明段定义:在窗体模块的通用声明段定义:67第第十十二二章章 文文件件Private Sub For
63、m_Load() CommonDialog1.ShowSave 以随机文件的方式翻开对话框中指定的文件以随机文件的方式翻开对话框中指定的文件 Open CommonDialog1.FileName For Random _ As #1 Len = Len(StudTab)End Sub在窗体的在窗体的Load事件过程中翻开指定的文件:事件过程中翻开指定的文件:68第第十十二二章章 文文件件Private Sub Command1_Click() StudTab.No = Text1.Text StudTab.Name = Text2.Text StudTab.Math = Val(Text3.
64、Text) StudTab.English = Val(Text4.Text) Put #1, , StudTab Text1.Text = : Text2.Text = Text3.Text = : Text4.Text = End Sub 在在“添加按钮的添加按钮的Click事件过程中读取界面各事件过程中读取界面各数据到变量数据到变量StudTab中,然后将变量中,然后将变量StudTab的值的值作为一条记录写入随机文件中:作为一条记录写入随机文件中:69第第十十二二章章 文文件件Private Sub Command2_Click() Close #1 关闭随机文件关闭随机文件 EndE
65、nd Sub 在在“结束按钮的结束按钮的Click事件过程中关闭随机文事件过程中关闭随机文件,并结束运行:件,并结束运行:70第第十十二二章章 文文件件【例【例12-912-9】使用例】使用例12-812-8建立的随机文件,按指定建立的随机文件,按指定的记录号读取记录。的记录号读取记录。CommonDialog1Text1Text2Text3Text471第第十十二二章章 文文件件 声明用户自定义类型声明用户自定义类型StudRec,定义变量,定义变量StudTab为为StudRec类型:类型:Private Type StudRec No As String * 6 Name As Stri
66、ng * 8 Math As Integer English As IntegerEnd TypeDim StudTab As StudRec 72第第十十二二章章 文文件件在窗体的在窗体的Load事件过程中翻开指定的文件:事件过程中翻开指定的文件:Private Sub Form_Load() CommonDialog1.ShowOpen 以随机文件的方式翻开对话框中指定的文件以随机文件的方式翻开对话框中指定的文件 Open CommonDialog1.FileName _ For Random As #1 Len = Len(StudTab)End Sub73第第十十二二章章 文文件件 在
67、在Text1的的KeyUp事件过程中编写代码,根据返事件过程中编写代码,根据返回的回的KeyCode参数进行判断,如果参数进行判断,如果KeyCode值为值为13,说明按下了回车键,那么从随机文件中读取指定,说明按下了回车键,那么从随机文件中读取指定的记录。的记录。Private Sub Text1_KeyUp(KeyCode As Integer, _ Shift As Integer) recno = Val(Text1.Text) If KeyCode = 13 Then If recno LOF(1) / Len(StudTab) Or _ recno = 0 Then MsgBox
68、记录号超出范围记录号超出范围 Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) Else74第第十十二二章章 文文件件 Get #1, recno, StudTab Text2.Text = StudTab.No Text3.Text = StudTab.Name Text4.Text = StudTab.Math Text5.Text = StudTab.English End If End IfEnd Sub75第第十十二二章章 文文件件12.6 二进制文件二进制文件二进制文件是以字节为单位进行访问的文件。二进制文件是以字节为单位进行
69、访问的文件。二进制文件没有特别的结构,整个文件都可以当二进制文件没有特别的结构,整个文件都可以当作一个长的字节序列来处理。作一个长的字节序列来处理。可以用二进制文件来存放非记录形式的数据或变可以用二进制文件来存放非记录形式的数据或变长记录形式的数据。长记录形式的数据。76第第十十二二章章 文文件件12.6.1 二进制文件的翻开和关闭二进制文件的翻开和关闭1二进制文件的翻开二进制文件的翻开格式:格式:Open For Binary As #说明:说明:1关键字关键字For Binary表示翻开随机文件,不能省表示翻开随机文件,不能省略。略。2当使用当使用Open语句翻开文件二进制时,如果文件语句
70、翻开文件二进制时,如果文件已经存在那么直接翻开,否那么,建立一个新的已经存在那么直接翻开,否那么,建立一个新的文件文件例:以二进制方式翻开例:以二进制方式翻开C盘上的文件盘上的文件test.txt: Open C:test.txt For Binary As #177第第十十二二章章 文文件件2二进制文件的关闭二进制文件的关闭 二进制文件的关闭同样使用二进制文件的关闭同样使用Close语句语句 例如:例如: Close #1 表示关闭文件号为表示关闭文件号为1的文件的文件78第第十十二二章章 文文件件12.6.2 二进制文件的读写二进制文件的读写1写文件写文件格式:格式:Put #,功能:将变
71、量包含的数据写入二进制文件中。功能:将变量包含的数据写入二进制文件中。说明:说明:1:表示从文件头开始的字节数,文:表示从文件头开始的字节数,文件从此位置开始写入数据;假设省略件从此位置开始写入数据;假设省略,那么从上次读或写的位置数加,那么从上次读或写的位置数加1字节处开始写字节处开始写数据数据2:可以是任何类型的变量。每次写:可以是任何类型的变量。每次写入的数据长度为此数据类型所占的字节数。如入的数据长度为此数据类型所占的字节数。如果是可变长度字符串,写入的将是字符串数据,果是可变长度字符串,写入的将是字符串数据,而不包括结束符,最好使用定长字符串读写二而不包括结束符,最好使用定长字符串读
72、写二进制文件。进制文件。79第第十十二二章章 文文件件3可以使用可以使用Seek语句来定位读写文件的位置。语句来定位读写文件的位置。 Seek语句格式:语句格式:Seek #, 功功能能:将将文文件件的的读读写写位位置置定定位位到到所所指指的位置处。的位置处。 例:在文件的第例:在文件的第10个字节处写入个字节处写入“实验实验 : Seek #1, 10 Put #1, , 实验实验80第第十十二二章章 文文件件2读文件读文件格式:格式:Get #,功功能能:将将一一个个已已翻翻开开的的二二进进制制文文件件读读入入一一个个变变量量之中。之中。说明:说明:的含义与的含义与Put语句相同。语句相同
73、。通通常常可可以以是是任任何何数数据据类类型型,用用于于接接收收从从二进制文件中读取的数据。二进制文件中读取的数据。81第第十十二二章章 文文件件【例【例12-10】画出随机生成的彩色点,同时将各点】画出随机生成的彩色点,同时将各点的位置和颜色值写入文件的位置和颜色值写入文件“d:test.img中。如中。如以下图以下图Command1Command2Command3Command4Command582第第十十二二章章 文文件件Dim c As Long 画点计数画点计数 翻开文件翻开文件Private Sub Command1_Click() 翻开文件翻开文件按钮按钮 Open d:test
74、.img For Binary As #1End Sub 画点画点按钮,画点并写文件按钮,画点并写文件Private Sub Command2_Click() c = c + 1 画点计数画点计数 ScaleWidth = 100: ScaleHeight = 100 DrawWidth = 20 设置点的大小设置点的大小 m_x = Rnd * 100 设置随机点的设置随机点的x坐标坐标 m_y = Rnd * 100 设置随机点的设置随机点的y坐标坐标 代码如下:代码如下:83第第十十二二章章 文文件件 生成随机的红、绿、蓝颜色分量值,并画点生成随机的红、绿、蓝颜色分量值,并画点 m_re
75、d=Rnd * 255 m_green=Rnd * 255 m_blue=Rnd * 255 PSet (m_x, m_y), RGB(m_red, m_green, m_blue) 将所画的点的信息写入二进制文件中将所画的点的信息写入二进制文件中 Put #1, , m_x Put #1, , m_y Put #1, , m_red Put #1, , m_green Put #1, , m_blueEnd Sub84第第十十二二章章 文文件件 清屏幕清屏幕按钮按钮Private Sub Command3_Click() Cls Close #1End Sub 关闭文件关闭文件按钮按钮Pri
76、vate Sub Command5_Click() Close #1End Sub85第第十十二二章章 文文件件 重载重载按钮,读文件并画点按钮,读文件并画点Private Sub Command4_Click() Dim s As Long ScaleWidth = 100 设置比例设置比例 ScaleHeight = 100 DrawWidth = 20 For i = 1 To c Get #1, , m_x 读文件读文件 Get #1, , m_y Get #1, , m_red Get #1, , m_green Get #1, , m_blue PSet (m_x, m_y), R
77、GB(m_red, m_green, m_blue) NextEnd Sub本例未考本例未考虑虑容容错问题错问题 86第第十十二二章章 文文件件本章小结本章小结1. 文件的根本概念文件的根本概念 文件:指存储在外部介质上的数据的集合。文件:指存储在外部介质上的数据的集合。 分类分类: 顺序文件;随机文件;二进制文件顺序文件;随机文件;二进制文件2 .常用的文件操作语句和函数常用的文件操作语句和函数 与文件、文件夹有关的函数和语句与文件、文件夹有关的函数和语句 : CurDir函数函数 、ChDir语句语句 、ChDrive语句语句 、 MkDir语句语句 、RmDir语句语句 、Dir函数函数
78、 对文件和文件夹的操纵对文件和文件夹的操纵 : FileCopy语句语句 、Kill语句语句 、Name语句语句 、 FileDateTime 函数函数 、FileLen 函数、函数、 GetAttr函数、函数、 SetAttr 语句语句 87第第十十二二章章 文文件件3. 文件系统控件文件系统控件驱动器列表框驱动器列表框(DriveListBox)目录列表框目录列表框(DirListBox)文件列表框文件列表框(FileListBox) 4. 顺序文件顺序文件 ASCII文件文件; 只能按顺序存取记录只能按顺序存取记录翻开翻开: Open语句语句关闭关闭: Close语句语句写写: Writ
79、e #语句、语句、Print#语句语句读读: Input #语句、语句、Line Input #语句语句; Input函数、函数、InputB函数函数88第第十十二二章章 文文件件5. 随机文件随机文件 读写次序任意、记录长度相等读写次序任意、记录长度相等 通常用自定义类型变量存取数据通常用自定义类型变量存取数据翻开翻开: Open语句语句关闭关闭: Close语句语句写写: Put语句语句读读: Get语句语句6. 二进制文件二进制文件 以字节为单位进行访问的文件以字节为单位进行访问的文件 翻开:翻开:Open语句语句关闭关闭: Close语句语句写写: Put语句语句读读: Get语句语句 89