可视化程序设计.ppt

上传人:创****公 文档编号:1933320 上传时间:2019-11-03 格式:PPT 页数:60 大小:452.50KB
返回 下载 相关 举报
可视化程序设计.ppt_第1页
第1页 / 共60页
可视化程序设计.ppt_第2页
第2页 / 共60页
点击查看更多>>
资源描述

《可视化程序设计.ppt》由会员分享,可在线阅读,更多相关《可视化程序设计.ppt(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、可视化程序设计,Visual Basic 6.0 的使用,Teacher:Kening-GaoE-mail:,第五章 文件,重点掌握VB中文件的概念、种类及其结构文件的类型文件系统控件驱动器列表框drvDrive目录列表框dirDirectory文件列表框filFile文件的操作,一、什么是文件?,文件文件是存储在外部介质(如磁盘)上的以文件名标识的数据的集合存储在磁盘上的文件称为磁盘文件与计算机相连的设备称为设备文件这些文件都不在计算机内,统称为外部文件为访问存放在外部介质上的数据,应先按文件名找到所指定的文件,然后再从该文件中读取数据,一、什么是文件?,文件文件是数据的集合, VB的文件由

2、记录组成记录由字段组成,一组相关的字段就组成一条记录记录是计算机处理数据的基本单位,它由一组具有共同属性相互关联的数据项组成,二、文件的类型,按存取方式分类分为顺序文件和随机文件 顺序存取只能依先后次序存取文件中的数据随机文件可以直接存取文件中指定的数据按性质分类 分为程序文件和数据文件 按存储格式分类分为ASCII码文件和二进制文件,二、文件的类型,顺序文件(Sequential File)顺序存取方式是将要保存的数据,依序逐个转换成ASCII字符,然后存入磁盘以顺序存取的方式保存数据的文件叫作顺序存取文件,简称顺序文件顺序文件是普通的文本文件顺序文件中的文件中的记录一个接一个地存放记录与记

3、录之间有分界字符读写文件存取记录时,都必须按记录顺序逐个进行一行一条记录(一项数据),记录可长可短,以“换行”字符为分隔符号顺序文件的结构比较简单,二、文件的类型,顺序文件特点在顺序文件中,只知道第一个记录的存放位置,其他记录的位置无从知道当要在顺序文件中查找某个记录时,只能从文件头开始,一个记录一个记录地顺序读取,逐个比较,直到找到要查找的记录优点操作简单,占用空间少缺点无法灵活的、任意取出某个记录来修改如果要修改数据,必须将全部数据读入RAM中进行修改,然后将修高厚的数据重新写入磁盘在数据量很大或只想修改某一条记录时,显得非常不方便只适用于有规律的、不经常修改的数据,如文本文件,二、文件的

4、类型,随机文件(Random Access File)以随机存取方式存取数据的文件称为随机存取文件,也称直接存取文件,简称随机文件随机文件由大小相同的数据记录组成随机文件是可以按任意次序读写的文件,其中每个记录的长度必须相同在这种文件结构中,每个记录都有其唯一的一个记录号在读取数据时,只要知道记录号,便可以直接读取记录,二、文件的类型,随机文件每个记录的长度是固定的,每个记录前都有一个记录号表示这个记录的开始可以根据需要访问文件中的任何一个记录而不必考虑各个记录的排列顺序或位置在随机文件中,可以同时进行读写操作,因而能快速地查找和修改某个记录,不必对整个文件进行读写操作只要给定记录号,就能迅速

5、找到该记录读取数据需要将修改后记录写入文件时,只要指出记录号,新记录将自动覆盖原有记录,直接存入指定位置优点访问速度快,读、写、修改灵活方便由于在每个记录前增加了记录号,从而使文件占用的存储空间增大,数据组织较复杂,二、文件的类型,二进制文件(Binaryfile)二进制访问模式是以字节数来定位数据在程序中可以按任何方式组织和访问数据对文件中各字节数据直接进行存取二进制文件是字节的集合直接把二进制码存放在文件中存储单位是字节随机文件按记录存取顺序文件按行存取除了没有数据类型或者记录长度的含义以外,它与随机访问很相似优点在二进制文件中,能够存取任意所需要的字节可以把文件指针移动到文件中的任何地方

6、,存取方式最为灵活,三、文件系统控件,?由于应用程序必须将文件从内存存入磁盘,或从此判读如内存,因此要显示关于磁盘驱动器、目录和文件的信息Vb提供两种方法使用Commomdialog控件提供的标准对话框利用vb的文件系统控件创建自定义对话框,三、文件系统控件,Vb的3个文件系统控件目录列表框(DirListBox)驱动器列表框(DriveListBox)文件列表框(FileListBox)Vb文件系统控件的作用利用文件系统控件可以自动地从操作系统获取索取要的信息用户可以访问这些信息或通过其属性判断每个空间的信息,三、文件系统控件,驱动器列表框Sub drvDrive_Change() dirD

7、irectory.Path = drvDrive.DriveEnd Sub,驱动器列表框Sub dirDirectory_Change() filFile.Path = dirDirectory.PathEnd Sub,Sub Form_Load() Item = “所有文件(*.*)” cboType.AddItem Item + Space(20 - Len(Item) + *.* Item = 窗体文件(*.FRM) cboType.AddItem Item + Space(20 - Len(Item) + *.FRM Item = 位图文件(*.BMP) cboType.AddItem

8、 Item + Space(20 - Len(Item) + *.BMP cboType.ListIndex = 2End SubSub cboType_Click() filFile.Pattern = Mid(cboType.Text, 21)End Sub,文件列表框Sub filFile_Click( ) End SubSub filFile_DblClick( ) End Sub,三、文件系统控件,驱动器列表框(DriveListBox)一种下拉式列表框缺省时只显示当前驱动器名称下拉列表中提供计算机拥有的所有磁盘驱动器运行时,用户选择输入有效的驱动器标识符或单击右侧向下箭头,从下拉列

9、表中选定新的磁盘驱动器选定的驱动器出现在列表框的顶端,三、文件系统控件,驱动器列表框(DriveListBox)Drive属性是驱动器列表框控件最重要和常用的属性该属性在设计时不可用使用格式对象.Drive = drive例如:Drive1.drive=“D:”Change事件 在程序运行时,当选择一个新的驱动器或通过代码改变Drive属性的设置时都会触发驱动器列表框的change事件发生例如:使用语句ChDrive在操作系统级别变更驱动器ChDrive Drive1.drive,三、文件系统控件,目录列表框(DirListBox)显示当前驱动器上的目录结构以根目录开始,显示的当前目录按照子目

10、录的层次一次缩进运行时选定的目录有色条标识双击某一个目录,将显示该目录的所有子目录提示目录列表框智能显示系统的目录结构,不能显示目录中的文件,三、文件系统控件,目录列表框(DirListBox)属性Path属性目录列表框控件的最常用的属性,用于返回或设置当前路径该属性在设计时是不可用的使用格式Object.Path = 其中Object:对象表达式,其值是目录列表框的对象名:用来表示路径名的字符串表达式例如,Dir1.Path=“d:games缺省值是当前路径提示Path属性也可以直接设置限定的网络路径,网络计算机名共享目录名path,三、文件系统控件,目录列表框(DirListBox)属性L

11、istIndex属性目录列表框中的每一个目录都有一个整数表示符ListIndex标识每一个目录标识方法显示的当前目录的ListIndex值为-1,紧邻其上的ListIndex值为-2,依此类推当前目录的第一个子目录的ListIndex值为0,如有多个子目录,则子目录的ListIndex为1,2,3的顺序依次递增利用ListIndex只可以轻易实现在目录中的上下移动例如:If Dir1.List(-2)” Then Dir1.Path=Dir1.List(-2),三、文件系统控件,目录列表框(DirListBox)事件Change事件在程序运行时,当改变当前目录,即目录列表框的Path属性发生变

12、化时,都要触发其Change事件发生,三、文件系统控件,文件列表框( FileListBox )一种列表框显示当前驱动器中当前目录下的文件目录清单该控件运行时显示所选择文件类型的文件列表显示 Path 属性指定的目录中的文件定位并列举出来可用语句显示当前目录下的所有文件File1.Path=Dir1.Path,三、文件系统控件,文件列表框( FileListBox )属性Path属性显示该路径下的文件用于返回和设置文件列表框当前目录,设计时不可用提示当Path值的改变时,会引发一个PathChange事件Filename属性用于返回或设置被选定文件的文件名,设计时不可用提示引用时只返回文件名,

13、不包括路径名,需用Path属性得到其路径设置时可带路径,三、文件系统控件,文件列表框( FileListBox )属性Filename属性例如,要从文件列表框(File1)中获得全路径的文件名Fname$,用下面的程序代码:If Right(file1.path,1) = Then Fname$=file1.path & file1.filename Else Fname$=file1.path & & file1.filenameEnd If,三、文件系统控件,文件列表框( FileListBox )属性Pattern属性显示的文件类型用于返回或设置文件列表框所显示的文件类型可在设计状态设置

14、或在程序运行时设置缺省时表示所有文件设置形式为:Object.Pattern = value value是一个用来指定文件类型的字符串表达式可以使用包含通配符(“*”和“?”),三、文件系统控件,文件列表框( FileListBox )属性Pattern属性例如filFile.Pattern = “*.frm” 显示*.frm文件File1.Pattern= *.txt File1.Pattern= *.txt; *.Doc File1.Pattern= ?.txt提示使用“;”为分隔符指定显示多个文件类型重新设置Pattern属性引发“PatternChange”事件,三、文件系统控件,文件

15、列表框( FileListBox )属性ArchiveTrue:显示文档文件NormalTrue:显示正常标准文件HiddenTrue:显示隐含文件SystemTrue:显示系统文件。ReadOnlyTrue:显示只读文件,三、文件系统控件,文件列表框( FileListBox )属性MultiSelect 属性文件列表框MultiSelect 属性与列表框(ListBox)控件中MultiSelect 属性使用完全相同默认情况是0,即不允许选取多项List、ListCount 和 ListIndex 属性 文件列表框中的List、ListCount 和 ListIndex 属性与列表框控件的

16、相应属性的含义和使用方法相同在程序中对文件列表框中的所有文件进行操作,用到这些属性。例如:下段程序是将文件列表框(File1)中的所有文件名显示在窗体上,For i = 0 To File1.ListCount - 1 Print File1.List(i)Next i,三、文件系统控件,文件列表框( FileListBox )事件PathChange事件当路径被代码中FileName或Path属性的设置所改变时,此事件发生提示可使用PathChange事件过程来响应FileListBox控件中路径的改变当将包含新路径的字符串给FileName属性赋值时,FileListBox控件就调用Pat

17、hChange事件过程PatternChange事件当文件的列表样式,如:“*.*”,被代码中对FileName或Path属性的设置所改变时,此事件发生提示可使用PatternChange事件过程来响应在FileListBox控件中样式的改变。,三、文件系统控件,文件列表框( FileListBox )Click、DblClick事件,单击输出文件名:Sub filFile_Click( ) MsgBox filFile.FileNameEnd Sub,双击执行可执行程序Sub File1_DblClick( ) Dim Fname As String If Right(file1.path,

18、1) = Then Fname=file1.path & file1.filename Else Fname=file1.path & & file1.filename End If RetVal = Shell(Fname, 1) 执行程序End Sub,三、文件系统控件,应用实例使驱动器、目录和文件列表框同步显示界面设计 程序代码设计运行程序,三、文件系统控件,应用实例,Private Sub Drive1_Change() Dir1.Path = Drive1.DriveEnd Sub,Private Sub Dir1_Change() File1.Path = Dir1.PathEnd

19、 Sub,Private Sub File1_DblClick() If Right(File1.Path, 1) Then LblFileName.Caption = File1.Path & & File1.FileName Else LblFileName.Caption = File1.Path & File1.FileName End If Image1.Picture = LoadPicture(LblFileName.Caption)End Sub,四、文件的基本操作,文件操作(读写)的步骤打开文件在创建新文件或使用旧文件之前,必须先打开文件打开文件的操作为这个文件在内存中准备一

20、个读写时使用的缓冲区声明文件在什么地方,叫什么名字,文件处理方式如何访问文件通过相应的读写函数的完成对文件进行读/写操作从磁盘将数据送到内存称为“读”从内存将数据存到磁盘称为“写”关闭文件打开的文件使用(读/写)完后,必须关闭,否则会造成数据丢失关闭文件会把文件缓冲区中的数据全部写入磁盘,释放掉该文件缓冲区占用的内存,四、文件的基本操作,常用的文件操作语句ChDrive 语句格式:ChDrive drive功能:改变当前驱动器提示如果drive为“”,则当前驱动器将不会改变如果drive中有多个字 符,则ChDrive只会使用首字母例如下述方法都是将当前驱动器设为D盘ChDrive “D” C

21、hDrive “D:” ChDrive Dasd,四、文件的基本操作,常用的文件操作语句ChDir 格式:ChDir path功能:改变当前目录例如ChDir D:TMP 提示ChDir语句改变缺省目录位置,但不会改变缺省驱动器位置例如,如果缺省的驱动器是C,则上面的语句将会改变驱动器D上的缺省目录,但是C仍然是缺省的驱动器,四、文件的基本操作,常用的文件操作语句CurDir函数格式:CurDir(drive)功能:确定任何一个驱动器的当前目录例如:str=CurDir(“C:”) 表示获得C盘当前目录路径,并赋值给变量Str提示Drive参数是一个字符串表达式,它指定一个存在的驱动器如果没有

22、指定驱动器(drive为“”),则CurDir返回当前驱动器的当前目录,四、文件的基本操作,常用的文件操作语句MkDir格式:MkDir path功能:创建一个新的目录例如:MkDir D:MydirABC RmDir格式:RmDir path功能:删除一个存在的目录例如:RmDir D:MydirABC 提示只能删除空目录如果想要使用RmDir来删除一个含有文件的目录或文件夹,则会发生错误,四、文件的基本操作,常用的文件操作语句FileCopy语句格式:FileCopy source , destination功能:复制一个文件例如:FileCopy D:MydirTest.doc A:My

23、Test.doc提示不能复制一个已打开的文件,四、文件的基本操作,常用的文件操作语句Name (更名)格式:Name oldpathname As newpathname功能:重新命名一个文件或目录例:Name D:MydirTest.doc As A:MyTest.doc 提示 Name具有移动文件的功能 不能使用统配符“*”和“?”不能对一个已打开的文件上使用Name语句,四、文件的基本操作,常用的文件操作语句Kill语句格式:Kill pathname功能:删除文件例如:Kill “d:vbvb01.ppt提示pathname中可以使用统配符“*”和“?” 例如: Kill *.TXT,

24、四、文件的基本操作,常用的文件操作语句SetAttr 语句功能:设置文件属性格式:SetAttr FileName, attributes参数含义FileName:一个文件名的字符串表达式Attributes:常数或数值表达式,其总和用来表示文件的属性,四、文件的基本操作,常用的文件操作语句GetAttr函数功能:返回代表一个文件、目录、或文件夹的属性的Integer数据格式:GetAttr(FileName),五、文件读写,顺序文件顺序文件的打开格式参数的意义FileName :指定文件的“文件名”Input:打开一个文件,对该文件读操作Output:打开一个文件,对该文件些操作Append

25、:打开一个文件,对该文件末尾追加纪录#filenumber :一个介于1-511之间的整数,当打开一个文件并为其指定一个文件号,该文件号就代表指定文件,直到文件被关闭,Open FileName For Input | Output | Append As filenumber Len = Buffersize,五、文件读写,顺序文件顺序文件的打开例如:要建立一个新的顺序文件,名称为Data.txt:Open “Data.txt For Output As #1 顺序文件的关闭格式参数含义Filenumber:可选项,为文件号列表如:#1, #2, #3如果省略,则将关闭Open语句打开的所有

26、活动文件例如: Close #1,#2,#3 Close,Close #filenumber,#filenumber,五、文件读写,顺序文件顺序文件的写操作Print #语句格式含义文件号为以写方式打开文件的文件号输出列表为用分号或逗号分隔的变量、常量、空格和定位函数序列例题:编程把一个文本框中的内容,以文件形式存入磁盘。设定文本框的名称为Mytxt,文件名为Myfile.dat,PRINT #,,Open Myfile.dat For Output As #1Print #1, Mytxt.TextClose #1,五、文件读写,顺序文件顺序文件的写操作Write命令格式含义#文件号“数据列

27、表”:是准备写入到文件中的数据可以是变量名也可以是常数数据之间用“,”或“;”隔开例题:打开一个名为data.dat的文件,并将两个数字写到文件中,这两个数字是用户已输入到Textl和Text2两个文本框中的,Write #,,Private Sub Command1_Click()Open D:data.dat For Output As #1Write #1, Val(Textl.Text),Val(Text2.Text)Close #1End Sub,五、文件读写,顺序文件顺序文件的写操作例题创建一个新的顺序文为d:score.dat将数据追加到d:score.dat的尾部,(1)创建一

28、个新的顺序文为d:score.dat PrivateSubCommand1_Click()Open“d:score.datForOutputAs#1Write#1,xh,vb,vc,vfp“Write#1,1,80,70,90Close#1End sub ?文件的内容为什么?,PrivateSubCommand1_Click()Openc:cj.datForAppendAs#1Write#1,2,60,70,80Close#1End sub ?现在文件的内容又是什么?,五、文件读写,顺序文件顺序文件的读操作Input #语句格式含义把读出的每个数据项分别存放到所对应的变量例题:从文件c:cj.

29、dat中读出数据,Input #文件号,变量列表,PrivateSubCommand1_Click()Open c:cj.dat For Input As #1 For i = 1 To 3 Input #1, a, b, c, d Print a, b, c, d Next IClose #1End Sub,提示:在实际应用中,可以直接用windows的写字板或记事本建立和修改顺序文件(cj.txt),然后用 Open c:cj.txt For Input As #1打开读出数据,五、文件读写,顺序文件顺序文件的读操作Line Input #语句格式含义读一行到变量中,主要用来读取文本文件例

30、题:单击按钮时,用Line Input #在文件file.txt中逐行读并在文本框中显示出来,LINE INPUT #文件号,字符串变量,Private Sub Command1_Click() Dim NewLine As String Open D:file.txt For Input As #1 Do Until EOF(1) Line Input #1, NewLine Text1.Text = Text1.Text + NewLine + vbCrLf LoopEnd Sub,五、文件读写,顺序文件顺序文件的读操作Input$函数格式含义读取指定的数量的字符,作为函数的返回值与读文件

31、操作有关的几个函数Lof 函数LOF函数将返回某文件的字节数例如,LOF(1)返回#1文件的长度,如果返回0值,则表示该文件是一个空文件Loc 函数Loc函数将返回在一个打开文件中读写的记录号对于二进制文件,它将返回最近读写的一个字节的位置Eof 函数Eof 函数将返回一个表示文件指针是否到达文件末尾的标志如果到了文件末尾,Eof 函数返回TRUE(-1),否则返回FALSE(0),INPUT$(读取字符数, #文件号),五、文件读写,顺序文件顺序文件的读操作例题将一文本文件的内容读到文本框假定文本框名称为txtTest,文件名为MYFILE.TXT,方法1:一行一行读txtTest.Text

32、 Open MYFILE.TXT For Input As #1Do While Not EOF(1) Line Input #1, InputData txtTest.Text txtTest.Text + InputData+vbCrLfLoopClose #1,方法2:一次性读txtTest.Text Open MYFILE.TXT For Input As #1txtTest.Text = Input( LOF(1),1)Close #1,方法3:一个个字符读Dim InputData as String*1txtTest.Text Open MYFILE.TXT For Input

33、As #1Do While Not EOF(1) Input #1, InputData txtTest.Text txtTest.Text + InputDataLoopClose #1,五、文件读写,顺序文件实例:建立数据文件,通过输入框输入数据,并将数据存入文件Data.txt中,然后在窗体上显示出来,五、文件读写,Option ExplicitPrivate Sub Form_Click() 输入数据Open D:Data.txt For Output As #1Dim j As IntegerDim x As Integer, y As Integer, z As IntegerFo

34、r j = 1 To 3 x = InputBox(请输入x的值) y = InputBox(请输入y的值) z = InputBox(请输入z的值)Print #1, x, y, zNext jClose #1,读取数据Open D:Data.txt For Input As #1For j = 1 To 3 Input #1, x, y, z Print x, y, zNext jClose #1End Sub,五、文件读写,随机文件随即文件的存取是按记录进行操作的每个记录都有记录号并且长度相同无论读/写都需要先申请内存空间定义记录的类型结构通过用户自定义类型声明语句声明变量用于存放随机文

35、件的记录,Type Person ID As Integer Name As String * 20 MonthlySalary As Currency LastReviewDate As Long Title As String * 15 ReviewComments As String * 150End Type,五、文件读写,随机文件打开文件Open语句随机文件的打开方式必须是Random模式格式提示文件打开后,可同时进行写入与读出操作在open语句要指明记录的长度缺省直为128个字节例,OPEN FileName FOR Random As filenumber Len = recle

36、ngth,Open d:mytest.dat For Random As #1 Len = 20,五、文件读写,随机文件关闭文件与顺序文件相同,Close #filenumber,#filenumber,五、文件读写,随机文件随机文件写操作Put语句将一个记录变量的内容写到指定的记录位置处格式提示忽略记录号,则表示在当前记录后的位置插入一条记录例如:Put # 1,10,a表示将变量a的内容送到1号文件中的第10号记录去,Put # 文件号,记录号,变量,五、文件读写,随机文件随机文件写操作Get语句Get语句把文件中由记录号指定的记录内容读入到指定的变量中格式:提示忽略记录号,则读出当前记录

37、后的那一条记录 例如Get # 2,5,a表示将2号文件中的第五条记录读出后存放到变量a中,Get # 文件号,记录号,变量,五、文件读写,随机文件例题在一个模块中定义一个名为Person的新类型 单击【写入】按钮,用Textl和Text2文本框中的文本填充记录当用户单击【读取】按钮,将上上面写入的记录读回并显示在Text3和Text4文本框中,Type Person Name As String * 20 ID As String * 10End Type Dim WriteData As PersonDim ReadData As PersonPrivate Sub Command1_Cl

38、ick() WriteData.Name = Text1.Text WriteData.ID = Text2.Text Open D:records.dat For Random As #1 Len = 30 Put #1, , WriteData Close #1End SubPrivate Sub Command2_Click() Open D:records.dat For Random As #1 Len = 30 Get #1, , ReadData Close #1 Text3.Text = ReadData.Name Text4.Text = ReadData.IDEnd Sub

39、,五、文件读写,随机文件,1)Type Person定义在标准模块中,五、文件读写,二进制文件打开文件写操作写入长度等于变量长度的数据 读操作从指定位置开始读出长度等于变量长度的数据存入变量中,数据读出后移动变量长度位置如果忽略位置,则表示从文件指针所指的位置开始读出数据,数据读出后移动变量长度位置,Open 文件名 For Binary As #文件号,Put #文件号,位置,变量名,GET #文件号,位置,变量名,五、文件读写,二进制文件例题将D盘根目录中的文件Abc.dat复制到A盘,且文件名改为Myfile.dat,Dim char As ByteOpen D:Abc.dat For Binary As # 1 打开源文件Open A:Myfile.dat For Binary As # 2 打开目标文件Do While Not EOF(1) Get #1, , char 从源文件读出一个字节 Put #2, , char 将一个字节写入目标文件LoopClose#1, #2,

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

当前位置:首页 > 管理文献 > 事务文书

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁