Visual Basic程序设计实用教程 教学课件 ppt 作者 于秀敏 第8章 数据文件和文件系统空间

上传人:E**** 文档编号:89183852 上传时间:2019-05-20 格式:PPT 页数:38 大小:103KB
返回 下载 相关 举报
Visual Basic程序设计实用教程 教学课件 ppt 作者 于秀敏 第8章 数据文件和文件系统空间_第1页
第1页 / 共38页
Visual Basic程序设计实用教程 教学课件 ppt 作者 于秀敏 第8章 数据文件和文件系统空间_第2页
第2页 / 共38页
Visual Basic程序设计实用教程 教学课件 ppt 作者 于秀敏 第8章 数据文件和文件系统空间_第3页
第3页 / 共38页
Visual Basic程序设计实用教程 教学课件 ppt 作者 于秀敏 第8章 数据文件和文件系统空间_第4页
第4页 / 共38页
Visual Basic程序设计实用教程 教学课件 ppt 作者 于秀敏 第8章 数据文件和文件系统空间_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《Visual Basic程序设计实用教程 教学课件 ppt 作者 于秀敏 第8章 数据文件和文件系统空间》由会员分享,可在线阅读,更多相关《Visual Basic程序设计实用教程 教学课件 ppt 作者 于秀敏 第8章 数据文件和文件系统空间(38页珍藏版)》请在金锄头文库上搜索。

1、第8章 数据文件和文件系统控件,8.1文件概述,在计算机系统中,文件是存储数据的基本单位,任何对数据的访问都是通过文件进行的。所谓文件,是指在外存储器(如磁盘、磁带)上存储的用文件名标识的一组相关数据的集合。为了便于管理,通常将相关的一组文件放在同一个文件夹中,系统通过对文件、文件夹的管理达到管理数据的目的。在VB的应用程序中,也经常要对文件进行处理,例如建立文件、读/写文件以及删除文件等。,8.1文件概述,8.1.1文件的类型 根据系统对文件的访问方式,可以将文件分为三种类型:顺序文件、随机文件和二进制文件。 (1)顺序文件 顺序文件其实就是普通的ASCII码文本文件。顺序文件要求按照顺序进

2、行读写。在顺序文件中,记录之间的分界符号通常是回车符,即一行就是一条记录,各条记录的长度不相同。,8.1文件概述,(2)随机文件 随机文件中,所有记录的长度都必须相同,记录之间不需要特殊的分隔符号。可以根据用户给出的记录号直接访问特定记录。,8.1文件概述,(3)二进制文件 二进制文件用于存储二进制数据,要求以字节为单位存储和访问数据。二进制文件能用于存储任何需要的数据。在二进制文件中,能够存取任意需要的字节,这种存取方式最为灵活,但程序的工作量也最大。 在VB中,可以使用不同的方式来访问不同类型的文件。,8.1文件概述,8.1.2文件的处理 一般来说,在程序中处理数据文件,要经过三个步骤:首

3、先打开文件、对文件进行读/写操作、最后关闭文件。,8.1文件概述,(1)文件的打开 在程序中处理文件,首先要打开文件,打开文件时,系统为文件在内存中开辟一个专门的数据存储区域,称为文件缓冲区。每个文件缓冲区都有一个编号,称为文件号。文件号代表在该缓冲区中打开的文件,对文件进行的所有操作都要通过文件号进行。文件号由程序员在程序中指定,也可以使用VB提供的FreeFile函数自动获得下一个可以利用的文件号。,8.1文件概述,(2)文件的读/写 对于已在内存缓冲区中打开的文件,可以进行读/写操作。读操作是指将外存文件中的数据读入到内存变量中,供程序使用;写操作是指将内存变量中的数据写入到外存文件中。

4、 对文件的读/写操作都是通过文件缓冲区进行的,从文件读数据时,先将数据送到文件缓冲区中,然后再提交给变量;反之,将数据写入文件时,先将数据写入文件缓冲区暂存,待缓冲区已满或文件被关闭时,才一次性输出到文件。通过缓冲区读写文件的目的是减少读/写外存的次数,节省操作时间。,8.1文件概述,(3)文件的关闭 文件处理结束时,一定要关闭文件,因为可能有部分数据仍然在文件缓冲区中,所以不关闭文件会有数据丢失的情况发生。,8.2 顺序文件,8.2.1引例 例8.1 建立文件D:Scores.dat,将五名学生的学号、姓名和成绩写入文件;从文件中读出数据,找出其中最高成绩和最低成绩的学生信息,写入文件的末尾

5、;读出文件内容并显示在窗体上。 分析:该程序中要对文件进行四次读/写操作。所以需要四次以不同的访问模式打开文件。 (1)首先建立文件D:Scores.dat,将五名学生的学号、姓名和成绩写入文件。,8.2 顺序文件,代码如下: Open “D:Scores.dat“ For Output As #1 建立并打开文件D:Scores.dat用于写入数据,文件号为1 Write #1, “090101“, “李冰峰“, 78 写入第一名学生的数据 Write #1, “090102“, “张明伟“, 98 写入第二名学生的数据 Write #1, “090103“, “孙菲菲“, 83 写入第三名

6、学生的数据 Write #1, “090104“, “赵一洋“, 52 写入第四名学生的数据 Write #1, “090105“, “郑小娜“, 65 写入第五名学生的数据 Close #1 关闭1号文件,8.2 顺序文件,8.2 顺序文件,(2)再次打开文件,从文件中读出数据,找出最高成绩和最低成绩的学生信息。因为文件中有多行数据,所以使用循环。 代码如下: Open “D:Scores.dat“ For Input As #1 Dim No As String, Name As String, Score As Single Dim Max As Single, Min As Singl

7、e Min = 100 : Max = 0 Do While Not EOF(1) Input #1, No, Name, Score If Score Max Then Max = Score If Score Min Then Min = Score Loop Close #1,8.2 顺序文件,(3)第三次打开文件,将求出的最高成绩和最低成绩追加到文件的末尾。 代码如下: Open “D:Scores.dat“ For Append As #1 打开文件D:Scores.dat以追加数据,文件号为1 Write #1, “最高分数是“, Max 将最高分数追加到文件末尾 Write #1

8、, “最低分数是“, Min 将最低分数追加到文件末尾 Close #1 关闭1号文件,8.2 顺序文件,(4)最后打开文件,将文件的内容按行读出,并输出到窗体上。 代码如下: Open “D:Scores.dat“ For Input As #1 打开文件D:Scores.dat以读出数据,文件号为1 Dim LineData As String 定义一个变量,用于存放读出的一行数据 Do While Not EOF(1) 判断1号文件是否结束,若不结束则继续循环 Line Input #1, LineData 从1号中读出一行数据存放到变量LineData中 Print LineData

9、将读出的数据输出到窗体上 Loop Close #1 关闭1号文件,8.2 顺序文件,8.2 顺序文件,8.2.2顺序文件的基本操作 1顺序文件的打开 在对文件进行操作之前,必须首先打开文件,同时通知操作系统对文件进行的操作是读出数据还是写入数据。打开顺序文件使用Open语句。格式如下: Open For As # 其中: (1)文件名可以是字符串常量或字符串变量。 (2)模式可以是下列之一: Output:对文件进行写操作。若文件不存在,则在外存创建一个新的顺序文件,若文件已经存在,则文件中所有内容将被清除。 Input:对文件进行读操作。 用该模式打开的文件必须存在,否则将出现错误。 Ap

10、pend:在文件末尾追加记录。 (3):文件号是一个介于1511之间的整数,代表文件在内存使用中的缓冲区。,8.2 顺序文件,例如: Open “D:aaa.dat” For Output As #1 打开顺序文件D:aaa.dat供写入数据,文件号为1 Open “D:bbb.txt” For Append As #2 打开顺序文件D:bbb.txt供追加数据,文件号为2 Open “D:ccc.dat” For Input As #3 打开顺序文件D:ccc.dat供读出数据,文件号为3,8.2 顺序文件,2顺序文件的关闭 结束各种读写操作后,必须关闭文件,否则会丢失数据。关闭文件使用Cl

11、ose语句。格式如下: Close # 其中: (1)文件号是指利用Open语句打开文件时指定的文件号。 (2)此语句可以同时关闭多个已打开的文件,用逗号分隔文件号。 (3)若省略文件号,表示关闭所有已经打开的文件。,8.2 顺序文件,例如: Close #1 关闭文件号为1的文件 Close #2,#3 同时关闭文件号为1和文件号为2的文件 Close 关闭所有打开的文件,8.2 顺序文件,3顺序文件的写操作 以Output和Append方式打开的文件可以进行写操作,将数据写入顺序文件可以使用Write #语句或Print #语句。 (1)Write #语句 Write #语句的语法格式如下

12、: Write #, 输出列表 输出列表项可以是常量、变量或表达式,输出列表项多于一个时,各项之间用逗号分隔。 Write #语句将各个输出项按列表顺序写入文件,并在各项之间自动插入逗号,并且将字符串加上双引号。所有变量写完后将在最后加一个回车换行符。不含输出列表的Write #语句,将在文件中写入一个空行。,8.2 顺序文件,(2)Print #语句 Print #语句的语法格式如下: Print #, 输出列表 此语句的功能和Print语句类似,不同的是,此处是将输出列表写入到文件中,而不是输出到窗体上。 输出列表项可以是常量、变量或表达式,输出列表项多于一个时,各项之间可以用逗号或分号分

13、隔,其含义与Print语句的紧凑格式和标准格式相同。 在输出列表项中可以使用Spc(n)函数想问中写n个空格,也可以使用Tab(n)函数指定其后的输出项从第n列输出。 Print#语句与Write #语句的区别在于字符串没有加双引号,数据之间没有逗号分隔。,8.2 顺序文件,例8.2 分别使用Print #语句的标准格式、Print #语句的紧凑格式与Write #语句向文件D:Scores.dat中写入两行数据。 Private Sub Form_Click() Open “D:Scores.dat“ For Output As #1 Print #1, “090101“, “李冰峰“, 7

14、8 Print #1, “090102“, “张明伟“, 98 Print #1, “090103“; “孙菲菲“; 83 Print #1, “090104“; “赵一洋“; 52 Write #1, “090105“, “黄丽莉“, 55 Write #1, “090106“, “杨铁心“, 67 Close #1 End Sub,8.2 顺序文件,8.2 顺序文件,4顺序文件的读操作 以Input方式打开的文件可以进行读操作,读顺序文件时常用LOF函数、EOF函数、Input#语句和Line Input#语句。 (1)LOF函数 LOF函数的调用格式如下: LOF(文件号) 其功能是返回

15、文件的字节数。如果返回0,则表示该文件是一个空文件。 (2)EOF函数 EOF函数的调用格式如下: EOF(文件号) 其功能是测试当前读写的位置,即是否到达文件的末尾,到达文件末尾,返回True,否则返回False。,8.2 顺序文件,(3)Input#语句 Input#语句的语法格式如下: Input#, 该语句的功能是将从文件中读出的数据分别赋给指定的变量,变量个数多于一个时,用逗号分隔。Input#语句一般与Write#语句配套使用。Input#语句可以将顺序文件中的数据按照原来的数据类型读出来。Input#语句一般与Write#语句配合使用。,8.2 顺序文件,例如,执行以下程序段可以

16、在顺序文件中写入一行数据: Open “D:Scores.dat“ For Output As #1 Write #1, “090106“, “杨铁心“, 67 Close #1 则再执行以下程序段,可以按照原来的数据类型读出数据。 Dim No As String*6,Name As String*8,Score As Integer Open “D:Scores.dat“ For Input As #1 Input #1, No,Name,Score Close #1,8.2 顺序文件,(4)Line Input#语句 Line Input#语句的语法格式如下: Line Input #, 该语句的功能是从文件中读出一行数据并赋给指定的字符变量。与Input#语句类似,只是Input#语句读取的是数据项,而Line Input#语句读取的是

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号