Visual Basic程序设计及应用_第7章_vb

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第7课文件管理与操作本章学习目标:
文件系统对象
传统文件访问技术
文件系统控件
本章要点:
顺序文件访问
随机文件访问
二进制文件访问
7.1课前导读
文件是一个有序且包含大量内容的信息集。

任何类型的信息都可以存储在文件中。

如果设计应用程序时使用数据库文件,那么在应用程序中就不需提供直接的文件访问。

Data控件与绑定控件都可以向数据库写数据或从数据库读数据,这比直接使用文件访问技术操作数据容易得多。

然而,有时需要读写文件而不是数据库。

本课主要介绍如何处理文件,包括直接创建、操纵及保存文本和其它数据文件。

7.2课堂教学
7.2.1 File System Object模型介绍
Visual Basic的一个新功能是File System Object(FSO)对象模型,该模型提供了一个基于对象的工具来处理文件夹和文件。

这使开发人员除了使用传统的Visual Basic语句和命令之外,还可以使用以前所熟悉的带有一整套属性、方法和事件的object.method语法来处理文件夹和文件。

FSO对象模型使应用程序能够创建、改变、移动和删除文件夹,或者检测是否存在指定的文件夹,如果存在,则会确定其位置。

FSO对象模型也便于获取关于文件夹的信息,诸如文件名称、创建日期或最近修改日期等。

1.创建FileSystemObject对象
第一步是创建一个File System Object对象以便进行处理。

可以通过如下两种方法完成:
将一个变量声明为File System Object对象类型:
Dim fso As New FileSystemObject
使用CreateObject方法来创建一个FileSystemObject对象:Set fso=CreateObject("Scripting.FileSystemObject") 2.使用适当的方法
下一步就是使用该FileSystemObject对象的适当的方法。

使用适当的方法,可以创建、删除、复制、移动文件和文件夹。

3.访问已有的驱动器、文件和文件夹
要访问一个已有的驱动器、文件或文件夹,可使用File System Object对象中相应的一些“get” 方法:
GetDrive——返回一个与指定路径中的驱动器相对应的Drive对象
GetFolder——返回一个和指定路径中文件夹相对应的Folder对象。

GetFile——返回一个和指定路径中文件相对应的File对象。

4.访问对象的属性
一旦有了对象的句柄,就能够访问其属性。

7.2.3 使用FSO处理驱动器和文件夹
可以在程序中使用FSO对象模型来处理驱动器和文件夹,如同在“Windows资源管理器”中进行的交互方式一样。

可以复制和移动文件夹,获得驱动器和文件夹的信息等。

1.获得驱动器的信息
Drive对象允许获得一个系统的各个驱动器的信息,这些驱动器可以是物理的,也可以是位于网络上的。

通过该对象的属性可以获得下列信息:
以字节表示的驱动器总空间(TotalSize属性)。

以字节表示的驱动器可用空间(AvailableSpace或FreeSpace属性)。

给驱动器指定的字母号(DriveLetter属性)。

驱动器类型,诸如可移动的、固定的、网络、CD-ROM 、或者RAM盘(DriveType属性)。

驱动器序列号(SerialNumber属性)。

驱动器使用的文件系统类型,诸如FAT、FAT32、NTFS
驱动器是否可用(IsReady属性)。

共享和/或卷标的名称(ShareName和VolumeName属性)。

驱动器的路径或根文件夹(Path和RootFolder属性)。

2.使用CurDir、ChDrive、ChDir或App.Path
如果使用CurDir、ChDrive函数和ChDir语句或者Path属性(App.Path),它们有可能返回一个UNC路径(即如\\Server\Share而不是一个驱动器路径,如E:\Folder,这取决于运行程序或工程的方式)。

在如下的情况,App.Path返回一个UNC路径:
当运行一个从共享网络加载的工程时,即使该网络已经被映射到一个驱动器号。

当从一个共享网络运行一个已编译的可执行文件时(但是仅当通过一个UNC 路径运行该程序时)。

7.2.4 使用FSO处理文件
通过使用新的面向对象的FSO对象,比如Copy、Delete、Move以及OpenAsTextStream,或者使用传统的函数,比如Open、Close、FileCopy、GetAttr等等,就可以访问Visual Basic中的文件。

此时不用考虑其文件类型就可以移动、复制或删除文件。

文件操作主要有两类:
创建、添加、删除数据,以及阅读文件。

移动、复制和删除文件。

1.用File System Objects创建文件并添加数据
有三种不同方法来创建一个顺序文本文件(有时被称为“文本流”)。

一种方法就是使用CreateTextFile方法。

2.添加数据到文件
文本文件一经创建,就可以分三步向其中加入数据:
(1)打开文本文件以备写入数据。

(2)写入数据。

(3)关闭文件。

要打开文件,可以使用下面两种方法中的任一种:File对象的OpenAsTextStream方法,或FileSystemObject对象的OpenTextFile 方法。

要向打开的文本文件中写入数据,可以使用TextStream对象的Write或WriteLine方法。

它们之间的惟一差别是WriteLine在指定的字符串末尾添加换行符。

3.使用File System Objects读取文件
要从一个文本文件中读取数据,请使用TextStream对象的Read、ReadLine或ReadAll方法。

4.移动、复制和删除文件
对文件的移动、复制和删除,FSO对象模型都提供了三种方法,见表7-4:
7.2.5 传统的文件I/O语句和函数
从Visual Basic的第一版直到如今,文件处理都是通过使用Open语句以及其它一些相关的语句和函数来实现的。

这些机制将逐步被淘汰而转向使用FSO对象模型,但是在Visual Basic 6.0中仍得到完全支持。

1.文件访问类型
文件本身除了实际上是一系列定位在磁盘上的相关字节。

当应用程序访问一个文件时,必须假定字节表示什么(字符、数据记录、整数、字符串等)。

应根据文件包括什么类型的数据来使用合适的文件访问类型。

在Visual Basic中,有三种文件访问的类型:
顺序型——适用于读写在连续块中的文本文件。

随机型——适用于读写有固定长度记录结构的文本文件或者二进制文件。

二进制型——适用于读写任意有结构的文件。

2.文件访问函数和语句
7.2.6 使用顺序文件访问
推荐使用File System Objects来创建文本文件,但该信息只在需要使用旧文本文件创建方法时才提供。

当要处理只包含文本的文件时,比如由典型文本编辑器所创建的文件。

也就是说,其中的数据没有分成记录的文件,使用顺序型访问最好。

顺序型访问不太适于存储太多数字,因为每个数字都要按字符串存储。

一个四位数将需要4个字节的存储空间,而不是作为一个整数来存储需要的2个字节。

1.打开顺序访问文件
当顺序访问并打开一个文件时,可从文件输入(Input)字符,也可向文件输出(Output)字符。

或者把字符添加(Append)到文件中。

2.编辑为顺序访问打开的文件
如果要编辑一个文件,先把它的内容读入到程序变量,然后改变这些变量,最后再把这些变量写回到该文件。

7.2.7 使用随机文件访问
File System Object模式不提供随机文件的创建或访问方法。

随机型访问文件中的字节构成相同的一些记录,每个记录包含一个或多个字段。

具有一个字段的记录对应于任一标准类型,比如整数或者定长字符串。

具有多个字段的记录对应于用户定义类型。

例如,下边所定义的Worker Type创建由三个字段组成的19个字节的记录。

7.2.8 使用二进制文件访问
File System Object不提供二进制文件创建或访问方法。

二进制访问能提供对文件的完全控制,因为文件中的字节可以代表任何内容。

例如,通过创建长度可变的记录可保存磁盘空间。

当要保持文件的尺寸尽量小时,应使用二进制型访问。

7.2.9 文件系统控件
许多应用程序必须显示关于磁盘驱动器、目录和文件的信息。

为使用户能够利用文件系统,Visual Basic提供了两种选择,可以使用由CommonDialog控件提供的标准对话框,或者使用DirListBox、DriveListBox和FileListBox这三种特殊的控件的组合创建自定义对话框。

每个文件系统控件都经过精心设计,将灵活、复杂的文件系统检查功能与简易的编程方法结合起来。

每个控件都自动执行文件数据获取任务,但也可编写代码自定义控件外观
7.3 上机实战
7.3.1 使用数据文件
为了演示如何使用数据文件,下面将创建一个学生信息管理系统,其实现步骤如下:
(1)创建应用程序界面。

新建一个默认的应用程序,并添加标签、文本框和命令按钮。

(2)设置对象的属性。

标签的Caption属性、文本框的Text 属性和命令按钮的Caption属性。

(3)为应用程序添加代码。

(4)保存应用程序,并按F5键运行应用程序。

7.3.2创建文件管理程序
本示例使用文件系统控件创建一个文件搜索器,创建步骤如下:
(1)创建一个新的“标准EXE”工程。

在窗体上添加控件,并设置它们的属性。

(2)为应用程序添加代码。

(3)保存并运行应用程序。

在文件名中输入要查找的文件
7.4 常见问题解答
1.什么是File System Object对象模型,有什么功能?
答:File System Object(FSO)对象模型提供了一个基于对象的工具来处理文件夹和文件。

使应用程序能够创建、改变、移动和删除文件夹,或者检测是否存在指定的文件夹,如果存在,则确定其位置。

FSO对象模型使得对文件的处理变得更加简单。

在处理文件时,首要目标就是以一种可以有效利用空间和资源、并且易于存取的格式来存储数据。

需要能够创建文件,插入和修改数据,以及输出(读)数据。

2.使用FSO对象模型编程的主要步骤是什么?
答:使用FSO对象模型编程的主要步骤为:
(1)使用CreateObject方法,或将一个变量声明为FileSystemObject对象类型来创建一个FileSystemObject对象。

(2)对新创建的对象使用适当的方法。

(3)访问该对象的属性。

3.打开顺序文件时可以选择什么模式?
答:打开顺序文件时可以选择三种模式,它们是:(1)从文件输入字符的Input模式。

(2)向文件输出字符的Output模式。

(3)把字符加到文件的Append模式。

4.什么是顺序访问?
答:顺序访问是为普通的文本文件的使用而设计的。

文件中每一个字符都被假设为代表一个文本字符或者文本格式序列,比如换行符(NL)。

数据被存储为ANSI字符。

5.什么是随机型访问?
答:随机型访问打开的文件被认为是由相同长度的记录集合组成。

可用用户定义的类型来创建由各种各样的字段组成的记录,每个字段可以有不同的数据类型。

课后作业
1.填空题:
(1)在用Open语句打开文件时,如果省略“For方式”,则打开的文件的存取方式是_______。

(2)根据不同的标准,文件可分为不同的类型。

例如,根据数据性质,可分为_______文件和_______文件;根据数据的存取方式和结构,可分为_______文件和_______文件;根据数据的编码方式,可分为_______文件和_______文件。

(3)打开文件所使用的语句为_______。

在该语句中,可以设置的输入输出方式包括_______、_______、_______、_______和_______,如果省略,则为_______方式。

存取类型分为_______、_______和_______3种。

(4)在窗体上画一个驱动器列表框、一个目录列表框和一个文件列表框,其名称分别为Drive1、Dir1和File1,为了使它们同步操作,必须触发_______事件和_______事件,在这两个事件中执行的语句分别为_______和_______。

2.假定磁盘上有一个学生成绩文件,存放着100个学生的情况,包括学号、姓名、性别、年龄和5门课程的成绩。

试编写一个程序,建立以下4个文件:
(1)女生情况的文件。

(2)按5门课程成绩总分高低排列的学生情况的文件(需增加总分一栏)。

(3)按年龄从小到大顺序排列的全部学生情况的文件。

(4)按5门课程平均成绩的分数段(60分以下,60~70,71~80,81~90,90分以上)进行人数统计的文件。

3.编写一个建立图书数据文件的程序。

要求程序运行后,可以从键盘上输入每种图书的有关数据,包括图书分类号、登记号、作者号、单价、购进数、借出数、出版日期和出版名称,把这些数据存入文件中。

文件建立后,按登记号的顺序(由小到大)输出全部内容。

相关文档
最新文档