《《Visual Basic程序设计教程(第3版)》第6章文件系统》由会员分享,可在线阅读,更多相关《《Visual Basic程序设计教程(第3版)》第6章文件系统(34页珍藏版)》请在金锄头文库上搜索。
1、Click to edit Master title style,Click to edit Master text style,Second level,Third level,Forth level,Fifth level,*,*,Click to edit Master title style,Click to edit Master text style,Second level,Third level,Forth level,Fifth level,*,*,Visual Basic程序设计教程(第3版),第,6,章 文 件 系 统,第,6,章 文 件 系 统,2,6.1 利用传统的文
2、件操作方法访问文件,6.2 文件系统控件,6.3 文件系统对象,6.4 应用案例与设计简单文件管理器的设计,6.1,利用传统的文件操作方法访问文件,Visual Basic,中提供了,3,种数据的访问方式,顺序访问、随机访问和二进制访问,相应的文件可分为顺序文件、随机文件和二进制文件。,6.1,利用传统的文件操作方法访问文件,(,续,),无论是什么类型的文件,其操作步骤一般都要按下列,3,个步骤进行:,(,1,)打开(或创建)文件,一个文件必须打开或创建后才可以操作。如果文件已经存在,则打开该文件;如果不存在,则创建文件。,(,2,)根据打开文件的模式对文件进行读写操作,在打开(或创建)的文件
3、上执行所要求的读写操作。,(,3,)关闭文件,对文件读写操作完成后,要关闭文件并释放内存。,顺序文件访问,经常用来存储有规律的,不经常修改的数据,1,打开顺序文件,打开顺序文件的,Open,语句的语法格式为:,Open FileName For Input|Output|Append As#FileNumber,其中,,(,1,),FileName,参数代表文件名。,(,2,)可选参数,Input,、,Output,和,Append,代表打开顺序文件方式。,(,3,),FileNumber,参数代表与该文件关联的文件号,顺序文件访问,(,续,),2读顺序文件,(,1,),Line Input#
4、语句,Line Input#FileNumber,Var,其功能是从FileNumber参数所指定的文件中读取一行数据并赋值给String类型变量var。,(2)Input()函数,Input(Size,FileNumber),其功能是从文件号FileNumber指定的文件中读取Size个字节数据。,顺序文件访问,(,续,),(3)Input#语句,Input#FileNumber,Varlist,其功能是从文件号FileNumber指定的文件中读取数据并赋值给变量表Varlist中的变量。,注意:,(1)Input#语句将逗号和换行符作为分隔符,顺序读出FileNumber参数指定文件中的数
5、据。,顺序文件访问,(,续,),(2)Varlist变量列表,变量可以是任意类型的数据,多个数据项之间可以用逗号分隔。Input#语句中变量表Varlist中各变量的类型及顺序必须与文件中各数据项的数据类型及顺序保持一致。,(3)当从打开的文件中读入数据时,遇到第一个不为空格的字符或数字表示数据项的开始,遇到空格、逗号或行尾标志则认为数据项结束。,顺序文件访问,(,续,),3,写顺序文件,(,1,),Write#,语句,Write#FileNumber,Outputlist,(,2,),Print#,语句,Print#FileNumber,Outputlist,例如,,Print#1,将空白行
6、写入文件,Print#1,sun;tab,;moon ,数据写在两个输出区,Print#1,sun;moon,以空格隔开两个字符串,Print#1,spc(5);sun ,字符串前写入,5,个空格,Print#1,tab(10);sun ,将字符串写在第,10,列上,顺序文件访问,(,续,),4,关闭顺序文件,Visual Basic,提供的,Close,语句用来关闭文件,Close#FileNumber,#FileNumber,顺序文件访问,(,续,),【,例,6.1】,输入编号、姓名、年龄,将其值以追加方式存入文件,d:fileseq.dat,文件中,,并将文件内容显示出来。,(,1,)在
7、窗体上添加,3,个,Label,控件、,4,个,Textbox,控件、,3,个按钮控件,分别设置其,Caption,属性,而且用来显示文件信息的文本框,TextBox4,的,MultiLine,属性值为,true,,,ScorllBar,的值为,3,,运行界面如图,6.1,所示。,顺序文件访问,(,续,),图,6.1,例,6.1,运行界面图,顺序文件访问,(,续,),(,2,)主要代码如下。,Private Sub Command1_Click(),单击写文件按钮保存数据,Open,d:fileseq.dat,For Append As#1,追加方式打开文件,Write#1,Text1.Tex
8、t,Text2.Text,Text3.Text,Close#1,End Sub,顺序文件访问,(,续,),Private Sub Command2_Click(),显示文件内容,Dim,oneline,As String,Dim,wholefile,As String,Open,d:fileseq.dat,For Input As#1 ,以读方式打开文件,Do While Not EOF(1),Line Input#1,oneline,读入一行数据,wholefile,=,wholefile,+,oneline,+Chr$(13)+Chr$(10),换行显示,Loop,Text4.Text=,
9、wholefile,Close#1,End Sub,随机文件访问,1,打开随机文件,用来打开随机文件的,Open,语句语法格式如下:,Open FileName For Random As#FileNumber Len=Reclength,其中,,(,1,),Random,表示以随机方式打开文件。,(,2,),Len=Reclength,指定每个记录的长度。,随机文件访问,(,续,),2,读随机文件,Visual Basic 6.0,中使用,Get#,语句读随机文件。,Get#FileNumber,Recnum,Var,其功能是从文件号,FileNumber,指定的文件中读取第,Recnum,
10、条记录的内容,并赋值给变量,Var,,此时,Var,应为记录类型的变量。,随机文件访问,(,续,),3,写随机文件,使用,Put#,语句写随机文件,Put#FileNumber,Recnum,Var,其功能是将变量,Var,中的数据写到,FileNumber,指定文件的第,Recnum,条记录上。,4,关闭随机文件,关闭随机文件用,Close,语句,随机文件访问,(,续,),【,例,6.2】,利用随机文件操作方法重做例,6.1,Private Type,sdata,定义记录类型,s As String*8,x As String*6,y As Integer,End Type,Dim b As
11、,sdata,定义记录类型变量,Dim,reclen,As Integer ,定义记录长度变量,随机文件访问,(,续,),Private Sub Command1_Click(),单击写文件按钮保存数据,reclen,=,Len(b,),获得记录类型的长度,Open,d:fileran.dat,For Random As#1 Len=,reclen,打开随机文件,b.s,=Text2.Text,b.x,=Text1.Text,b.y,=Text3.Text,lastrec,=LOF(1)/,reclen,计算文件中的记录数,lastrec,=,lastrec,+1 ,获得下一条记录的记录号,P
12、ut#1,lastrec,b ,从文件尾端写文件,Close#1,End Sub,随机文件访问,(,续,),Private Sub Command2_Click(),显示文件内容,reclen,=,Len(b,),Open,d:fileran.dat,For Random As#1 Len=,reclen,以打开随机文件,lastrec,=LOF(1)/,reclen,计算文件中的记录数,For i=1 To,lastrec,Get#1,i,b,读入数据,wholefile,=,wholefile,+,b.x,+,b.s,+,Str(b.y,)+Chr$(13)+Chr$(10),Next,T
13、ext4.Text=,wholefile,Close#1,End Sub,二进制文件访问,应用程序可以在二进制文件的任意位置执行读写操作,访问单位为字节,1,打开二进制文件,Open FileName For Binary As#FileNumber,其中,,Binary,表示以二进制方式打开文件,2,读二进制文件,Get#FileNumber,Position,Var,其功能是从,FileNumber,文件的,Position,位置开始读取数据到变量,Var,中,读取的字节数由字节类型变量,Var,的大小决定。,二进制文件访问,(,续,),3,写二进制文件,Visual Basic 6.0,
14、中使用,Put#,语句写二进制文件,Put#FileNumber,Position,Var,其功能是将变量,Var,中的数据写入,FileNumber,文件从,Position,位置开始的地方。,4,关闭二进制文件,使用,Close,语句可以关闭二进制文件,二进制文件访问,(,续,),【,例,6.3】,利用二进制文件操作方法重做例,6.1,。,常用的文件操作语句和函数,语句或函数,ChDrive,语句,ChDir,语句,Kill,语句,MkDir,语句,FileCopy,语句,Name,语句,CurDir,函数,FileLen,函数,EOF,函数,LOF,函数,FreeFile,函数,6.2,
15、文件系统控件,1,驱动器列表框(,DriveListBox,),驱动器列表框的常用属性,Drive,属性,驱动器列表框的常用事件,Change,事件,2,目录列表框(,DirListBox,),目录列表框的常用属性,Path,属性,ListCount,属性,ListIndex,属性,目录列表框的主要事件,Change,事件,6.2,文件系统控件,(,续,),3,文件列表框(,FileListBox,),文件列表框的常用属性,Pattern,属性,Path,属性,FileName,属性,List,属性,ListIndex,属性,Archive,Hidden,Normal,ReadOnly,和,S
16、ystem,属性,文件列表框的常用事件,Click,事件,6.2,文件系统控件,(,续,),【,例,6.4】,编写一个程序完成图片浏览器的功能,要求能选择磁盘上的图片(,BMP,)文件,如图,6.5,所示。,图,6.5,例,6.4,运行界面,6.2,文件系统控件,(,续,),(,1,)在窗体上添加,1,个,DriveListBox,、,1,个,DirListBox,、,1,个,FileListBox,、,1,个,HScrollBar,、,1,个,VScrollBar,、,2,个,Picture,控件,其中:,Picture1,控件作为图片显示框,,Picture2,中显示图片,,Picture2,的,AutoSize,属性设置为,True,。,HScrollBar,和,VScrollBar,的,LargeChange,和,SmallChange,分别为,2000,和,200,。,FileListBox,的,Pattern,属性设置为*,.bmp,。,控件外观设置如图,6.5,所示。,6.2,文件系统控件,(,续,),(,2,)代码如下。,Private Sub Drive1_Chang