Visual-Basic程序设计第九章.ppt

上传人(卖家):三亚风情 文档编号:3371162 上传时间:2022-08-24 格式:PPT 页数:47 大小:436KB
下载 相关 举报
Visual-Basic程序设计第九章.ppt_第1页
第1页 / 共47页
Visual-Basic程序设计第九章.ppt_第2页
第2页 / 共47页
Visual-Basic程序设计第九章.ppt_第3页
第3页 / 共47页
Visual-Basic程序设计第九章.ppt_第4页
第4页 / 共47页
Visual-Basic程序设计第九章.ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、9.1 文件系统概述9.2 使用传统方法处理文件9.3 文件系统控件9.4 文件系统对象一、文件及其结构 文件:存储在外部介质上数据的集合。为了能有效地存取数据,数据必须以某种特定的方式存储,这种存储方式称为文件的结构。只要按照文件结构去存取,就能读取数据或写入数据。在操作系统中有两种文件:字符流无结构文件和记录式有结构文件 磁盘文件是由数据记录组成。记录是计算机处理数据的基本单位,它由一组具有共同属性相互关联的数据项组成。1字符(character)字符是构成文件的基本单位,凡是单一字节、数字、标点符号或其他特殊符号都是以字符表示。一个字符通常用一个字节存放,汉字是由两个字符组成。注意:当计

2、算字符串长度时一个汉字是作为一个字符来处理的。2字段(field)字段是由几个字符组成的一项数据,一般很少由单一字符组成。如学生信息的数据中,姓名、学号、性别等,都是字段。3记录(record)记录是由一组相关的字段组成。例如,在学生信息数据中,学生的姓名、学号、性别、年龄等信息组成一个记录,在VB中,通常以记录为单位处理数据。4文件(file)由一个或一个以上的记录集合而组成的数据单位称为文件。例如,学生信息表里有40个学生记录,这40个学生的记录就构成了一个文件。根据访问文件的方式将文件分成3类:顺序文件、随机文件、二进制文件1顺序文件 顺序文件(Sequential File)是普通的文

3、本文件。顺序文件中的记录按顺序一个接一个地排列。读写文件存取记录时,都必须按记录顺序逐个进行。一行一条记录(一项数据),记录可长可短,以“换行”字符为分隔符号。结构简单;但不能灵活存取,适用于不经常修改的文件2随机文件 随机文件(Random Access File)是可以按任意次序读写的文件,其中每个记录的长度必须相同。在这种文件结构中,每个记录都有其唯一的一个记录号,所以在读取数据时,只要知道记录号,便可以直接读取记录。存取速度快,易更新;但占用空间大,设计程序较复杂3二进制文件 二进制文件(Binaryfile)是字节的集合,直接把二进制码存放在文件中。除了没有数据类型或者记录长度的含义

4、以外,它与随机访问很相似。二进制访问模式是以字节数来定位数据,在程序中可以按任何方式组织和访问数据,对文件中各字节数据直接进行存取。灵活性很大;相对的,程序更复杂。1FreeFile函数:格式:FreeFile其中:等于0或1。省略时,返回1255之间的文件号:等于1时,则返回256511之间的文件号。说明:使用FreeFile函数可以把一个未使用的文件号赋给指定变量。当用Open语句打开文件时,使用代表文件号的变量,可以不必考虑具体的文件号。当打开的文件较多,特别在一些通用过程中访问文件时,可以避免打开正在使用的文件号。2Loc函数格式:Loc(文件号)说明:Loc函数将返回在一个打开文件中

5、读写的记录号;对于二进制文件,它将返回最近读写的一个字节的位置。3Lof 函数 格式:Lof(文件号)说明:LOF函数将返回某个已打开文件的字节数。例如,LOF(1)返回#1文件的长度,如果返回0值,则表示该文件是一个空文件。4.Eof 函数 格式:Eof(文件号)说明:Eof 函数将返回一个表示文件指针是否到达文件末尾的标志。如果到了文件末尾,Eof 函数返回TRUE(-1),否则返回FALSE(0)。在应用中,一般使用以下格式来检测是否到达文件尾:Do While Not EOF(文件号)Loop5.FileDateTime函数格式:FileDateTime(FileName)功能:返回一

6、个Variant(Date),此值为一个文件被创建或最后修改后的日期和时间。8FileLen函数格式:FileLen(FileName)功能:返回一个Long,代表一个文件的长度,单位是字节。打开文件打开文件读出或写入读出或写入关闭文件关闭文件在程序中对文件的操作,通常按3个步骤进行:1.打开顺序文件 Open 语句格式:Open Open FileNameFileName For Input|Output|Append For Input|Output|Append LockAs LockAs filenumberfilenumber Len=Len=BuffersizeBuffersize

7、 例如:OPEN “C:TEMPA.TXT”FOR Input AS#1 OPEN “C:TEMPB.TXT”FOR Output AS#2 OPEN “C:TEMPC.TXT”FOR Append AS#3 dim filenumber filenumber=Freefile Open“c:a.dat”for output as#filenumber2.关闭文件Close 语句格式:Close filenumberlist其中:filenumberlist:可选项,为文件号列表,如:#1,#2,#3,例如:Close#1,#2,#3 如果省略,则将关闭Open语句打开的所有活动文件。向文件写

8、入内容使用 Print#语句或Write#语句,在程序是数据输出。1Print语句 格式:PRINT#,说明:文件号为以写方式打开文件的文件号;输出列表为用分号或逗号分隔的变量、常量、空格和定位函数序列。2Write命令 格式:Write#,Write语句采用紧凑格式。数据项之间插入“,”,并给字符数据加上双引号。例1.Print与Write语句输出数据结果比较。Private Sub Form_Click()Dim Str As String,Anum As Integer Open D:Myfile.dat For Output As#1Str=ABCDEFGAnum=12345Print

9、#1,Str,AnumWrite#1,Str,AnumClose#1End SubprintWrite例2.编程把一个文本框中的内容,以文件形式存入磁盘。假定文本框的名称为Mytxt,文件名为Myfile.dat。方法1:把整个文本框的内容一次性地写入文件。Open Myfile.dat For Output As#1Print#1,Mytxt.TextClose#1方法2:把整个文本框的内容一个字符一个字符地写入文件。Open Myfile.dat For Output As#1For i=1 To len(Mytxt.Text)Print#1,Mid(Mytxt.Text,i,1);Nex

10、t iClose#1 从现存文件中读入数据,应以顺序Input方式打开该文件。然后使用 Input#语句、Line Input#语句和Input()函数读入到程序变量中。格式:INPUT#INPUT#文件号文件号,变量列表变量列表把读出的每个数据项分别存放到所对应的变量。格式:LINE INPUT#LINE INPUT#文件号文件号,字符串变量字符串变量读一行到变量中,主要用来读取文本文件。格式:INPUT$(INPUT$(读取字符数读取字符数,#,#文件号文件号)读取指定的数量的字符,作为函数的返回值。例3.编程将一文本文件的内容读到文本框。假定文本框名称为txtTest,文件名为MYFIL

11、E.TXT。可以通过下面三种方法来实现。方法方法1 1:一个个字符读:一个个字符读 Dim InputData as String*1 txtTest.Text Open MYFILE.TXT For Input As#1 Do While Not EOF(1)Input#1,InputData txtTest.Text txtTest.Text+InputData Loop Close#1方法方法2 2:一行一行读:一行一行读txtTest.Text Open MYFILE.TXT For Input As#1Do While Not EOF(1)Line Input#1,InputData

12、 txtTest.TexttxtTest.Text+InputData+vbCrLfLoopClose#1回车换行回车换行 方法方法3 3:一次性读:一次性读txtTest.Text Open MYFILE.TXT For Input As#1txtTest.Text=Input(LOF(1),1)Close#1随机文件的打开与关闭1打开随机文件 格式:OPEN FileName FOR Random As filenumber Len=reclength 用OPEN命令以Random模式打开随机文件,同时指出记录的长度。文件打开后,可同时进行读写操作。例如:Open d:abc.dat Fo

13、r Random Access Read As#1 Len=202关闭随机文件:随机文件的关闭与关闭顺序文件相同。写随机文件 Put#文件号,记录号,变量名将一个记录变量的内容写到指定的记录位置处。忽略记录号,则表示在当前记录后的位置插入一条记录。读随机文件Get#文件号,记录号,变量名忽略记录号,则读出当前记录后的那一条记录。1.打开文件 Open 文件名 For Binary As#文件号2.写操作Put#文件号,位置,变量名写入长度等于变量长度的数据。3.读操作GET#文件号,位置,变量名 从指定位置开始读出长度等于变量长度的数据存入变量中,数据读出后移动变量长度位置,如果忽略位置,则表

14、示从文件指针所指的位置开始读出数据,数据读出后移动变量长度位置。VB提供了3种可直接浏览系统目录结构和文件的控件:驱动器列表框、目录列表框、文件列表框。驱动器列表框目录列表框文件列表框 驱动器列表框控件,通常只显示当前驱动器名称,单击向下箭头,就会下拉出当前系统拥有的所有磁盘驱动器,供用户选择。2 2重要事件重要事件ChangeChange事件事件 在程序运行时,当选择一个新的驱动器或通过代码改变Drive属性的设置时都会触发驱动器列表框的change事件发生。1 1重要属性重要属性 Drive属性是驱动器列表框控件最重要和常用的属性,该属性在设计时不可用。使用格式:对象.Drive=例如:D

15、rive1.drive=“D:”目录列表框(DirListBox)控件用来当前驱动器目录结构及当前目录下的所有子目录。供用户选择其中一个目录为当前目录。常用属性:Path常用事件:Change常用属性:Pattern、FileName、Path常用事件:Click、DbClick例4.利用文件系统控件、组合框、文本框,制作一个文件浏览器。要求:组合框限定文件列表框中显示文件的类型,如选定“*.Txt”文件。当在文件列表框选定欲显示的文件时,在文本框显示出该文件的内容。程序运行效果如图1File System Object 模型介绍 File System Object(FSO)对象模型是Vis

16、ual Basic 的一个新增功能,该对象模型提供了一个基于对象的工具来处理文件夹和文件。这使得处理文件夹和文件除了使用传统的语句和命令外,可以通过使用属性、方法和事件的对象方法来实现。File System Object(FSO)对象模型包含在 Scripting 类型库(Scrrun.Dll)中,如果尚未对其进行引用,可以选择“工程”菜单中的“引用”命令,打开“引用”对话框,再选择“Miscrosoft Scripting Runtime”复选框 1创建 FileSystemObject 对象可以通过如下两种方法完成FileSystemObject 对象的创建:方法一:将一个变量声明为 F

17、ileSystemObject 对象类型:。Dim fso As New FileSystemObject方法二:使用 CreateObject 方法来创建一个 FileSystemObject 对象:。Set fso=CreateObject(Scripting.FileSystemObject)Drive 对象可以获得系统中所有驱动器的信息,这些驱动器可以是物理的,也可以是位于网络上的,其主要属性为:TotalSize、AvailableSpace、DriveLetter、DriveType、SerialNumber、FileSystem、IsReady、ShareName VolumeN

18、ame和Path例:获取驱动器D盘总空间和剩余空间的信息,可以通过FileSystemObject的GetDrive方法创建一个Drive对象,并获取所需要的信息。程序代码如下:Private Sub Form_Click()Dim fso As New FileSystemObject,drv As Drive,s As String Set drv=fso.GetDrive(fso.GetDriveName(d:)s=驱动器&UCase(d:)s=s&drv.VolumeName&vbCrLf s=s&总空间:&FormatNumber(drv.TotalSize/1024,0)s=s&K

19、b&vbCrLf s=s&剩余空间:&FormatNumber(drv.FreeSpace/1024,0)s=s&Kb&vbCrLf MsgBox sEnd SubFileSystemObject 对象对文件夹的管理包括对文件夹的复制、移动、删除以及获得与文件夹有关的信息,但文件夹对象的操作可以通过起自身的属性和方法来实现。属性如下:Name、Path、Drive、Datecreated、DatelastModified、DatalastAccessed、Size、ParentFolder、Attributes管理文件夹的部分方法如下:创建一个文件:FileSystemObject.Creat

20、eFolder删除一个文件夹:Folder.Delete或 FileSystemObject.DeleteFolder移动一个文件夹 Folder.Move 或 FileSystemObject.MoveFolder复制一个文件夹 Folder.Copy 或 FileSystemObject.CopyFolder获得已有Folder对象的一个实例 FileSystemObject.GetFolder1文件的创建和打开 假设现在要在D盘创建文本文件test.txt,可以采用以下的方法:(1)使用 CreateTextFile 方法。程序代码如下:Dim fso As New FileSystem

21、Object,fil As FileSet fil=fso.CreateTextFile(d:testfile.txt,True)(2)使用 FileSystemObject 对象的 OpenTextFile 方法。Dim fso As New FileSystemObject,ts As New TextStreamSet ts=fso.OpenTextFile(d:test.txt,ForAppending)(3)使用带 ForWriting 标志设置的 OpenAsTextStream 方法:Dim fso As New FileSystemObject,fil As File,ts A

22、s TextStreamSet fso=CreateObject(Scripting.FileSystemObject)fso.CreateTextFile(d:test.txt)Set fil=fso.GetFile(d:test.txt)Set ts=fil.OpenAsTextStream(ForWriting)使用 TextStream 对象的 Write 或WriteLine 方法 写入数据 TextStream.Write 写入数据行 TextStream.WriteLine添加一个空行 TextStream.WriteBlankLines关闭文件 TextStream.Close

23、例建立新文件“c:test.txt”,并写入文本内容。程序代码如下:Private Sub Command1_Click()Dim fso As New FileSystemObjectDim file1 As TextStream 声明Set file1=fso.CreateTextFile(d:test.txt)创建新的文件file1.Write(使用文件系统对象编程,写入数据事例)file1.WriteBlankLines(1)注意参数值取不同值时的不同之处file1.WriteLine(写入数据)file1.Close 关闭文件End Sub使用 TextStream 对象的 Read、ReadLine或 ReadAll 方法 具体如下:从一个文件中读取指定数量的字符:Read读取一整行(紧跟,但不包括,换行符):ReadLine读取一个文本文件的所有内容:ReadAll移动一个文件使用 File.Move 或 FileSystemObject.MoveFile方法。复制一个文件使用 File.Copy 或 FileSystemObject.CopyFile方法。删除一个文件使用 File.Delete 或 FileSystemObject.DeleteFile方法5.关闭文件关闭文件关闭文件可以使用TextStream对象的Close方法

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Visual-Basic程序设计第九章.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|