PPT14 数据文件_第1页
PPT14 数据文件_第2页
PPT14 数据文件_第3页
PPT14 数据文件_第4页
PPT14 数据文件_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、主页主页 程序中经常需要将大量数据信息程序中经常需要将大量数据信息作为数据文件存储在磁盘上。作为数据文件存储在磁盘上。 VBVB可以处理三种类型的数据文件,可以处理三种类型的数据文件,即顺序文件、随机文件和二进制文即顺序文件、随机文件和二进制文件,并且提供了与文件处理有关的件,并且提供了与文件处理有关的控件。控件。 主页主页 文件是指存放在外存储器文件是指存放在外存储器(如磁盘如磁盘)上的信息集合上的信息集合 两大类文件:程序文件两大类文件:程序文件和和数据文件数据文件 可以将应用程序所处理的数据以文件的形式保存起来可以将应用程序所处理的数据以文件的形式保存起来本本章章主主要要内内容容 第第8

2、 8章章 数据文件与文件管理数据文件与文件管理文件概述文件概述文件打开与关闭文件打开与关闭随机文件随机文件文件操作语句和函数文件操作语句和函数 顺序文件顺序文件退出退出磁盘磁盘数据数据文件文件内存内存 通过程序来通过程序来实现数据存取实现数据存取操作操作存取数据存取数据程序程序文件文件文件系统控件文件系统控件文件基本操作文件基本操作主页主页 14.1.1 14.1.1 文件结构文件结构 1. 1. 数据文件的结构数据文件的结构 数据文件由记录组成,记录由字段组成,字段由字符组成数据文件由记录组成,记录由字段组成,字段由字符组成 记录记录1 数据文件数据文件记录记录2 学号学号 姓名姓名 951

3、001 951001 张三张三 学号学号 姓名姓名 951002 951002 李四李四 字段字段 14.114.1 文件概述文件概述主页主页 (1)顺序文件:顺序文件:文本文件。文本文件。文件中的记录按顺序一个接一文件中的记录按顺序一个接一个地排列。只能按记录的先后顺序进行存取。个地排列。只能按记录的先后顺序进行存取。 (2)随机文件随机文件:随机文件的每一个记录都有固定的长度,:随机文件的每一个记录都有固定的长度,每一个记录都有记录号,这种文件的特点是允许用户存取文每一个记录都有记录号,这种文件的特点是允许用户存取文件中任一个记录。可以同时进行读或写操作存入和读出速度件中任一个记录。可以同

4、时进行读或写操作存入和读出速度较快,数据容易更新较快,数据容易更新 (3)二进制文件二进制文件:可理解为长度为:可理解为长度为1的特殊的随机文件的特殊的随机文件14.1.2 文件类型文件类型记录记录1 记录记录2 记录记录3 按记录顺序进按记录顺序进行存取操作行存取操作记录记录1 记录记录2 记录记录3 允许存允许存/取任一个记录取任一个记录如存入记录如存入记录3,再读取,再读取记录记录2主页主页 (1) 打开打开(或新建或新建)文件文件(2) 进行读、写操作进行读、写操作 系统设置文件指针,用来记住当前读写的位置系统设置文件指针,用来记住当前读写的位置 (3) 关闭文件关闭文件14.214.

5、2 文件的打开与关闭文件的打开与关闭主页主页 1. 打开文件打开文件(Open) 在对文件进行操作之前,必须先打开或建立文件。在对文件进行操作之前,必须先打开或建立文件。 Open 文件名文件名 For 方式方式Access 存取类型存取类型锁定锁定 As #文件号文件号Len=记录长度记录长度 说明说明:方式方式用于指定文件访问的方式,包括:用于指定文件访问的方式,包括:Input顺序输入顺序输入 Output顺序输出顺序输出Append从文件末尾添加从文件末尾添加 Binary二进制文件二进制文件 Random随机存取方式(默认方式)随机存取方式(默认方式) 文件号文件号(或称文件缓冲区或

6、称文件缓冲区) :1511的整数的整数 长度长度Len:用来指定每个记录的长度:用来指定每个记录的长度(字节数字节数) 示例:示例: Open d:cj1.dat For Output As #1Open兼有打开或建立文件功能,对同一文件可用不同的文件号兼有打开或建立文件功能,对同一文件可用不同的文件号打开,每个文件号都有自己的一个缓冲区打开,每个文件号都有自己的一个缓冲区 14.2.1 文件的打开文件的打开(知识点)(知识点)主页主页2. 关闭文件关闭文件(Close) 打开的文件在读写操作结束后,应将文件关闭。打开的文件在读写操作结束后,应将文件关闭。 关闭文件的语句格式:关闭文件的语句格

7、式: Close # 文件号文件号1 ,# 文件号文件号2 示例:示例: Close #1Close语句用来关闭文件,打开文件后的操作。格式语句用来关闭文件,打开文件后的操作。格式中的中的“文件号文件号”是是Open语句中使用的文件号。语句中使用的文件号。如果指定文件号则关闭指定文件;如果不指定文件号如果指定文件号则关闭指定文件;如果不指定文件号则关闭所有文件。则关闭所有文件。除用除用Close语句关闭文件外,程序结束时将自动关闭语句关闭文件外,程序结束时将自动关闭所有打开的文件。所有打开的文件。操作简单,但不是可有可无。操作简单,但不是可有可无。14.2.2 文件的关闭文件的关闭(知识点)(

8、知识点)主页主页14.3.1 文件指针文件指针文件被打开后,自动生成一个文件指针。文件的读文件被打开后,自动生成一个文件指针。文件的读写从指针位置开始。写从指针位置开始。Append方式打开后,文件指针指方式打开后,文件指针指向文件末尾。其他方式打开指向文件的头。指针随写向文件末尾。其他方式打开指向文件的头。指针随写入自动后移。文件指针的定位通过入自动后移。文件指针的定位通过Seek语句实现。语句实现。格式:格式:Seek #文件号文件号,位置位置对于用对于用Input、Output或或Append方式打开的文件,方式打开的文件,位置是从文件头到位置是从文件头到“位置位置”为止的为止的字节数字

9、节数。文件的第。文件的第一字节的位置为一字节的位置为1。对于用。对于用Random方式打开的文件,方式打开的文件,位置是位置是记录号记录号。在在Get或或Put语句中的记录号优先于由语句中的记录号优先于由Seek确定的确定的位置。位置。“位置位置”为为0或负数时,产生出错信息或负数时,产生出错信息“错误的错误的记录号记录号”14.3 文件操作语句和函数文件操作语句和函数主页主页1. FreeFile函数函数用用FreeFile函数可以得到一个在程序中没有使用的文件号。函数可以得到一个在程序中没有使用的文件号。当程序中打开文件较多时,这个函数很有用,特别在通用过程当程序中打开文件较多时,这个函数

10、很有用,特别在通用过程中使用文件时,用这个函数可以避免使用其他中使用文件时,用这个函数可以避免使用其他Sub或或Function过过程中正在使用的文件号。利用这个函数可以把末使用的文件号程中正在使用的文件号。利用这个函数可以把末使用的文件号赋给一个变量,用这个变量作文件号,而不必知道具体的文件赋给一个变量,用这个变量作文件号,而不必知道具体的文件号是多少。号是多少。2. Loc函数函数格式:格式:Loc(文件号文件号)该函数返回由该函数返回由“文件号文件号”指定的文件的读写位置。格式中指定的文件的读写位置。格式中的的“文件号文件号”是是Open语句中使用的文件号。对于随机文件,该语句中使用的文

11、件号。对于随机文件,该函数返回的是一个记录号,对于顺序文件,该函数返回的是从函数返回的是一个记录号,对于顺序文件,该函数返回的是从该文件被打开以来读或写的记录个数,一个记录是一个数据块。该文件被打开以来读或写的记录个数,一个记录是一个数据块。14.3.2 其他文件操作函数其他文件操作函数(知识点)(知识点)主页主页Private Sub Form_Click() filename$ = InputBox$(请输入要打开的文件名请输入要打开的文件名:) Filenum = FreeFile Open filename$ For Output As Filenum Print filename$;

12、 opened as file #; Filenum Close #FilenumEnd Sub例例14.1 用用FreeFileFreeFile函数获取一个文件号函数获取一个文件号例例14.1主页主页3. LOF函数函数格式:格式:LOF(文件号文件号)该函数返回文件分配的字节数,即文件的长度。在该函数返回文件分配的字节数,即文件的长度。在Visual Basic在,文件的基本单位是记录,每个记录的默认长度是在,文件的基本单位是记录,每个记录的默认长度是128字字节,因此,节,因此,LOF函数返回的是函数返回的是128的倍数,而不一定是实际的字的倍数,而不一定是实际的字节数。节数。4. EO

13、F函数函数格式:格式:EOF(文件号文件号)该函数测试文件的结束状态,可避免出现在文件输入时出该函数测试文件的结束状态,可避免出现在文件输入时出现现“输入超出文件尾输入超出文件尾”的错误。对于顺序文件,如果到文件尾的错误。对于顺序文件,如果到文件尾部,该函数返回值为部,该函数返回值为“True”,否则为,否则为False。对于随机文件,最。对于随机文件,最后执行的后执行的Get语句未能读到一个完整的记录,则返回语句未能读到一个完整的记录,则返回True,这通,这通常发生在试图读文件结尾以后部分。常发生在试图读文件结尾以后部分。14.3.2 其他文件操作函数其他文件操作函数(知识点)(知识点)主

14、页主页 1. 顺序文件的写入操作顺序文件的写入操作 以以Output或或Append方式打开文件方式打开文件 使用使用Write#语句或语句或Print#语句将数据语句将数据(一个不定长记录一个不定长记录)写入文写入文件中件中 2. 顺序文件的读出操作顺序文件的读出操作 以以Input方式打开文件方式打开文件 采用采用Input #或或Line Input #语句从文件中读出数据语句从文件中读出数据 14.4 14.4 顺序文件顺序文件(知识点)(知识点) Input或或 Line Input 磁磁 盘盘 Write或或 Print顺顺序序文文件件 内内 存存 写入数据写入数据读出数据读出数据

15、 格式:格式: Write #文件号文件号 , 表达式表表达式表 Input #文件号文件号, 变量名表变量名表主页主页数据文件的写操作分为打开、写入、关闭文件数据文件的写操作分为打开、写入、关闭文件3步步1. Print #语句语句格式:格式:Print #文件号文件号,Spc(n)|Tab(n)表达式表表达式表;|,功能:把数据写入文件中,功能:把数据写入文件中,Print #语句和语句和Print方法功能类方法功能类似。似。 Print方法所方法所“写写”的对像是窗体、打印机或控件,而的对像是窗体、打印机或控件,而Print #语句所语句所“写写”的对像是文件。的对像是文件。2. Wri

16、te #语句语句格式:格式:Write #文件号文件号,表达式表表达式表Write #语句和语句和Print #语句功能基本相同,主要区别如下:语句功能基本相同,主要区别如下:当用当用Write #语句向文件写数据时,数据在磁盘上以紧凑语句向文件写数据时,数据在磁盘上以紧凑格式存放,能自动在数据项之间插入逗号,并给字符串加上双格式存放,能自动在数据项之间插入逗号,并给字符串加上双引号,一旦最后一项被写入,就插入新的一行。引号,一旦最后一项被写入,就插入新的一行。用用Write #语句写入的正数前面没有空格。语句写入的正数前面没有空格。 14.4.1 14.4.1 顺序文件的写操作顺序文件的写操

17、作(知识点)(知识点)主页主页 把把150的的50个整数,以及这些数中能被个整数,以及这些数中能被7整除的数分别整除的数分别存入两个文件中,文件名为存入两个文件中,文件名为num1和和num2,文件存放在,文件存放在VB缺缺省文件夹下省文件夹下 Private Sub Form_Load() Open num1.txt For Output As #1 Open num2.txt For Output As #2 For i = 1 To 50 Write #1, i If i Mod 7 = 0 Then Write #2, i Next i Close #1, #2 Unload Me 退

18、出了加载,释放了系统资源退出了加载,释放了系统资源 End Sub 说明:说明:num1.txt文件中一共写入文件中一共写入50个记录,而个记录,而num2.txt文件只写入其文件只写入其中能被中能被7整除的若干个记录整除的若干个记录例例14.2 把把150各数及能被各数及能被7整除的数分别存入两个文件中整除的数分别存入两个文件中例例14.2主页主页数据文件的读操作分为打开、读取、关闭文件数据文件的读操作分为打开、读取、关闭文件3步步1. Input #语句语句格式:格式:Input #文件号文件号,变量表变量表Input #语句从一个顺序文件中读出数据,并把这些数据赋语句从一个顺序文件中读出

19、数据,并把这些数据赋给程序变量。给程序变量。2. Line Input #语句语句格式:格式: Line Input #文件号文件号,字符串变量字符串变量Line Input #语句功能是从一个顺序文件中读取一个完整的语句功能是从一个顺序文件中读取一个完整的行,并把它赋给一个字符串变量。行,并把它赋给一个字符串变量。 3. Input $函数函数格式:格式: Input $ (n,#文件号文件号)Input $函数返回从指定文件中读取函数返回从指定文件中读取n个字符的字符串。即从个字符的字符串。即从数据文件中读取指定数目的字符。数据文件中读取指定数目的字符。 14.4.2 14.4.2 顺序文

20、件的读操作顺序文件的读操作(知识点)(知识点)主页主页 已知文件已知文件“num2.txt”中存放一批能被中存放一批能被7整除的数整除的数(见例见例14.1),现要求把这些数显示出来。每行显示现要求把这些数显示出来。每行显示1个数。个数。 Private Sub Form_Load() Show Open num2.txt For Input As #1 Do While Not EOF(1) 文件未结束时,循环文件未结束时,循环 Input #1, x Print x Loop Close #1 End Sub例例14.3 从文件从文件“num2.txtnum2.txt”中读取数据中读取数据

21、例例14.3主页主页 随机文件中每一个记录定长,并设置记录号随机文件中每一个记录定长,并设置记录号(从从1开始开始)。 存取记录时,只要说明所需记录的编号,系统就以此算出记录所在位置存取记录时,只要说明所需记录的编号,系统就以此算出记录所在位置 (1) 使用使用TypeEnd Type语句定义一个语句定义一个记录类型记录类型,该类型包括,该类型包括多个数据项,并与文件中记录应包括的域一致。多个数据项,并与文件中记录应包括的域一致。 (2) 指定指定Random类型打开文件,记录定长,打开文件后,就类型打开文件,记录定长,打开文件后,就可以存或取任一个记录。可以存或取任一个记录。 (3)分别通过

22、分别通过Get和和Put语句,并指定记录号进行读一个记录或语句,并指定记录号进行读一个记录或存一个记录存一个记录 14.5 14.5 随机文件随机文件(知识点)(知识点) Put 记录记录 磁磁 盘盘随随机机文文件件内内 存存 写入数据写入数据读出数据读出数据 Get 记录记录格式:格式: Get #文件号文件号, 记录号记录号, 变量变量 Put #文件号文件号, 记录号记录号, 变量变量主页主页数据文件的写操作分为打开、写入、关闭文件数据文件的写操作分为打开、写入、关闭文件3步步1. 随机文件的写操作随机文件的写操作随机文件的写操作分为以下随机文件的写操作分为以下4步步定义数据类型。定义数

23、据类型。打开随机文件,用打开随机文件,用Open来实现。来实现。将内存中的数据写入磁盘,用将内存中的数据写入磁盘,用Put #语句实现语句实现关闭文件。关闭文件。2.随机文件的读操作随机文件的读操作从随机文件中读取数据的操作与写文件的操作步骤类似,从随机文件中读取数据的操作与写文件的操作步骤类似,只是把第只是把第3步中的步中的Put语句用语句用Get语句来代替。语句来代替。格式:格式:Get #文件号文件号,记录号记录号,变量变量随机文件的优点是可以通过记录号直接访问文件中的任一随机文件的优点是可以通过记录号直接访问文件中的任一记录,从而可以大提高存取速度。在用记录,从而可以大提高存取速度。在

24、用Put语句向文件写记录时,语句向文件写记录时,就把记录号赋给了该记录,在读文件时,通过把记录号放在就把记录号赋给了该记录,在读文件时,通过把记录号放在Get语句中可以从随机文件中取任一个记录。语句中可以从随机文件中取任一个记录。 14.5.1 14.5.1 随机文件的读写操作随机文件的读写操作主页主页 例例14.4 建立一个随机文件,文件中包含建立一个随机文件,文件中包含10个记录,每个记个记录,每个记录由一个数录由一个数(1至至10)的平方、立方和开方根三个数值组成,以该数的平方、立方和开方根三个数值组成,以该数作为记录号。作为记录号。 存入全部记录后存入全部记录后,再读出其中再读出其中3

25、个记录。个记录。 (1) 通过通过Type.End Type语句定义记录类型:语句定义记录类型: Private Type Numval 定义记录类型定义记录类型Numval Squre As Integer Cube As Long Sqroot As Single End Type Dim nv As Numval 定义一个定义一个Numval类型的变量类型的变量nv (2)利用某一过程利用某一过程(本例采用事件过程本例采用事件过程Form_Load)来完成该随来完成该随机文件的存取操作,程序代码如下:机文件的存取操作,程序代码如下:例例14.4主页主页Private Sub Form_L

26、oad() Dim nv As numval 定义一个定义一个numval类型的变量类型的变量nu 写入记录程序段写入记录程序段 Open data1.dat For Random As #1 Len = Len(nv) For i = 1 To 10 nv.squre = i * i nv.cube = i * i * i nv.sqroot = Sqr(i) Put #1, i, nv Next i Close #1 读出记录程序段读出记录程序段 Show Open data1.dat For Random As #1 Len = Len(nv) For i = 2 To 10 Step

27、4 只读出只读出3个记录个记录 Get #1, i, nv Print 第第; i; 号记录号记录:, nv.squre, nv.cube, nv.sqroot Next i Close #1End Sub主页主页 运行结果:运行结果: 第第2号记录号记录 4 8 1.414214 第第6号记录号记录 36 216 2.44949 第第10号记录号记录 100 1000 3.162278主页主页 14.614.6 文件系统控件文件系统控件 VB工具箱中提供了三种文件系统控件:工具箱中提供了三种文件系统控件: 驱动器列表框驱动器列表框(DriveListBox):选择一个驱动器:选择一个驱动器

28、文件夹列表框文件夹列表框(DirListBox):显示一个磁盘的文件夹结构:显示一个磁盘的文件夹结构 文件列表框文件列表框(FileListBox):显示当前文件夹下的所有文件名:显示当前文件夹下的所有文件名 这三种控件可以单独使用,也可以组合使用这三种控件可以单独使用,也可以组合使用主页主页1. 驱动器列表框驱动器列表框驱动器列表框有一个驱动器列表框有一个Drive属性,用来设置或返回属性,用来设置或返回所选择的驱动器名。所选择的驱动器名。 Drive属性只能用程序设置,不能属性只能用程序设置,不能通过属性窗口设置。通过属性窗口设置。格式格式:驱动器列表框名称:驱动器列表框名称.Drive=

29、驱动器名驱动器名在程序运行期间,驱动器列表框下拉显示系统所拥在程序运行期间,驱动器列表框下拉显示系统所拥有的驱动器名称。在一般情况下,只显示当前的磁盘有的驱动器名称。在一般情况下,只显示当前的磁盘驱动器名称。如果单击列表框右端的向下的箭头,则驱动器名称。如果单击列表框右端的向下的箭头,则把计算机所有的驱动器名称全部下拉显示出来。单击把计算机所有的驱动器名称全部下拉显示出来。单击某个驱动器名,则可把它变为当前的驱动器。某个驱动器名,则可把它变为当前的驱动器。 14.6 14.6 文件系统控件文件系统控件主页主页2.目录列表框目录列表框目录列表框用来显示当前驱动器上的目录结构。刚目录列表框用来显示

30、当前驱动器上的目录结构。刚建立时显示当前驱动器的顶层目录和当前目录。如果建立时显示当前驱动器的顶层目录和当前目录。如果要显示其他驱动器上的目录,必须改变路径,即重新要显示其他驱动器上的目录,必须改变路径,即重新设置目录列表框的设置目录列表框的Path属性。属性。 Path属性适用于目录列属性适用于目录列表框和文件列表框。用来设置或返回当前驱动器的路表框和文件列表框。用来设置或返回当前驱动器的路径。径。格式:格式:窗体窗体.目录列表框目录列表框.|文件列表框文件列表框.path=“路路径径” 14.6 14.6 文件系统控件文件系统控件主页主页3.文件列表框文件列表框驱动器列表框驱动器列表框和和

31、目录列表框目录列表框可以指定当前驱动器和当前目可以指定当前驱动器和当前目录,而录,而文件列表框文件列表框可以用来显示当前目录下的文件(可以用来显示当前目录下的文件( 可以通过可以通过Path属性改变)属性改变)文件列表框的默认控件名是文件列表框的默认控件名是File1。文件列表框的属性:文件列表框的属性:Pattern属性:用来设置在执行时要显示的某一种类型的属性:用来设置在执行时要显示的某一种类型的文件,可以在设计阶段用属性窗口设置,也可以通过程序代码文件,可以在设计阶段用属性窗口设置,也可以通过程序代码设置。设置。FileName属性:用来在文件列表框中设置或返回某一种属性:用来在文件列表

32、框中设置或返回某一种选定的文件名称。选定的文件名称。 ListCount属性:用于组合框,也可用于在驱动器列表框属性:用于组合框,也可用于在驱动器列表框及文件列表框,返回控件内所列项目的总数。及文件列表框,返回控件内所列项目的总数。ListIndex属性:用来设置或返回当前控件上所选择的项属性:用来设置或返回当前控件上所选择的项目的目的“索引值索引值”。只能在代码中使用,不能通过属性窗口设置。只能在代码中使用,不能通过属性窗口设置。List属性:属性: List属性中存有文件列表框中所有项目的数组,属性中存有文件列表框中所有项目的数组,可用来设置或返回各种列表框中的某一项目。可用来设置或返回各

33、种列表框中的某一项目。 14.6 14.6 文件系统控件文件系统控件主页主页 可以在应用程序中很方便地对文件和文件夹进行操作可以在应用程序中很方便地对文件和文件夹进行操作 (1) (1) 建立文件夹语句建立文件夹语句(MrDir)(MrDir):MkDir MkDir 路径文件夹名路径文件夹名 示例:示例:MkDir D:VBTempMkDir D:VBTemp (2) (2) 改变当前驱动器改变当前驱动器(ChDrive)(ChDrive): (3) (3) 改变当前文件夹语句改变当前文件夹语句(ChDir)(ChDir):ChDir ChDir 路径路径 示例:示例:ChDir D:VBD

34、atChDir D:VBDat (4) (4) 删除文件夹语句删除文件夹语句( (RmDirRmDir) ) (5) (5) 删除文件语句删除文件语句( (KillKill) ) (6) (6) 拷贝文件语句拷贝文件语句( (FileCopyFileCopy) ) (7) (7) 文件的改名和移动文件的改名和移动( (NameName) ) (8) (8) 文件查找函数文件查找函数( (DirDir) )14.7 14.7 文件基本操作文件基本操作主页主页 在在“我的文档我的文档”(E:My Documents)文件夹下创建一个新文文件夹下创建一个新文件夹件夹“mydir”,然后复制文件,然后复制文件“E:My Do

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论