学习目标
本章主要介绍的是数据文件,通过本章的学习,要求掌握顺序文件、随机文件、二进制文件的打开、关闭、读、写等语句的格式、使用方法及特点,以及文件系统中的驱动器列表框控件、目录列表框控件和文件列表框控件的使用方法,编程中涉及到的与文件有关的函数与语句的格式、使用方法。本章共有5个实例1个项目,这些实例都具有极强的实用价值,对训练学生的动手能力和编程思维具有指导和启迪作用。
实训项目
1.项目题目:一个简单的文本编辑器
2.项目要求:此程序应具有新建、打开、保存、另存为一个文本文件的能力,可以修改打开的文件,改变文本的前景和背景颜色,设置文本的字体、字型与字号,可以将文本内容打印输出。另外,要求程序要有一定的健壮性,要具有预见到用户可能出现的误操作的能力。一旦出现误操作,程序要做出反应,并给出错误类型的提示与可能的解决办法,以便程序能继续运行下去。
3.项目界面及其要求:
⑴程序启动后的界面如图8-1所示:

图8-1 一个简单的文本编辑器
⑵单击【新建】按钮后,文本区成为可输入区,光标定位在文本区的左上角,等待用户输入数据。【新建】按钮不可用,【保存】和【另存为】按钮可用。文本区支持快捷菜单,可以对选中的数据剪切、复制和粘贴。单击【清除】按钮,可以删除文本区中的所有文本。其效果如图8-2所示:

图8-2 新建一个文件
⑶单击【打开】按钮,弹出“打开”对话框,如图8-3所示。选择一篇文章,单击【打开】,文章出现在文本区,单击【取消】,放弃选中的文件。可以拖动滚动条来浏览文章,但是不能对文章进行编辑。文件打开后,【新建】、【保存】和【另存为】三个按钮不可用,【修改】按钮可用。单击【修改】,文本区处于可编辑状态。一旦文本有所改动,【保存】和【另存为】两个按钮立即可用。如果单击【关闭】按钮,则会弹出【确认保存】对话框,如图8-4所示。若选择【是】,则需要保存。

图8-3 打开一个已存在的文件

图8-4 确认保存对话框
⑷若是新建文件,在第一次存盘时会弹出【另存为】对话框,以后单击【保存】按钮时,会直接以原名存盘。单击【背景颜色】按钮,可以改变文本区的背景,单击【前景颜色】按钮,可以改变文本的颜色,单击【字体】按钮,会弹出“字体”对话框,可以改变文本的字体、字型和字号。单击【打印】按钮,会弹出“打印”对话框,可以将文本输出到打印机上。
使用过计算机的人,都或多或少体验过正在输入的文本因死机、停电等原因而前功尽弃的经历,之后,他们中的大多数人会慢慢养成一种每隔一段时间存一次盘的习惯。造成数据丢失的原因是,程序或软件要加工的数据是存放在内存中的,而内存中的数据只能暂时存放,要想永久保存,就需要把数据存放在外存上。存储在外存中的数据是以文件的形式存放的,每一个文件都有一个名字,计算机通过文件名实现对文件的存取。
所谓文件是指存储在外部介质上的数据的集合。例如歌曲文件“春天的故事.MP3”是存储在硬盘、光盘或优盘等外部介质上的声音数据的集合,散文文件“荷塘月色.TXT”是存储在这些外部介质上的文字数据的集合,电影文件“少林寺.MPG”是存储在这些外部介质上的视频和声音数据的集合,而“China28Medals.DAT”文件则是存储在这些外部介质上的第28届奥运会中国奖牌总数数据的集合。
可以从各种不同的角度对文件进行分类。
1.从文件的内容来分类
可以分为程序文件和数据文件两大类。前者存储的是源程序、目标程序等各种程序,后者存储的是程序运行时要加工的数据或运行后的结果。本章主要介绍数据文件的使用方法。
2.从存储信息的形式来分类
可以分为ASCII文件和二进制文件。源程序、用“记事本”创建的文件属于前者,这类文件中保存的是字符的ASCII码,一个字符占一个字节。后者是以机内存储数据的形式存放的。例如Integer型数据3721,在ASCII文件中占4个字节,在二进制文件中占2个字节。
3.从存储介质来分类
可以分为磁盘文件、磁带文件、光盘文件、打印文件等。
4.从文件的组织形式来分类
可以分为顺序文件和随机文件。
在VB中,有三种文件访问的类型:顺序型、随机型和二进制型。
在VB中,处理数据文件的一般步骤为:
⑴打开文件
对文件做任何输入输出操作之前都必须先打开文件。Open语句分配一个缓冲区供文件进行输入输出之用,并决定缓冲区所使用的访问方式。
⑵对数据进行加工
利用前面几章的知识,对输入的数据按要求进行加工,最后输出结果。结果可以显示在屏幕上,也可以输出到打印机上,还可以写入到文件中。
⑶关闭文件
当关闭Output或Append打开的文件时,将属于此文件的最终输出缓冲区写入操作系统缓冲区。所有与该文件相关联的缓冲区空间都被释放。
在执行Close语句时,文件与其文件号之间的关联将终结。
所谓顺序文件,是指在读写数据时只能从前向后按顺序进行。顺序文件常被用来保存文本文件,它是标准的ASCII文件。
1.打开文件的格式:
Open 文件名 [for 打开方式] As [#]文件号
说明:
⑴文件名。指定要打开或新建的文件名,可以是字符串常量,也可以是字符串变量。该文件名可能还包括目录、文件夹及驱动器。
⑵打开方式包括以下3种。
Append:向文件尾部追加数据。若文件不存在,则创建之。
Input:从打开的文件中读出数据。该文件必须存在。
Output:向文件写入数据,若文件不存在,则创建之,否则,删除文件中的所有数据。
⑶文件号。即缓冲区号,是一个1~511之间的整数。它用来代表所打开的文件,文件号可以是整数或数值型变量。
2.关闭文件的格式:
Close [文件号表列]
说明:
文件号表列是用逗号隔开的若干个文件号,文件号与Open语句的文件号相对应。缺省时,关闭所有打开的文件。
1.写数据语句
⑴Print语句
格式:
Print #文件号,[输出表列]
说明: