讲稿计算机课件_第1页
讲稿计算机课件_第2页
讲稿计算机课件_第3页
讲稿计算机课件_第4页
讲稿计算机课件_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 7 章 文 件2 掌握文件管理控件的主要属性、事件和方法 掌握文件的基本概念 掌握文件的常用函数、语句 掌握 顺序文件的读、写操作 了解随机(记录)文件 了解二进制文件教学要求3 7.1 文件管理控件 7.2 文件处理 7.3 顺序文件 7.4 随机文件处理教学内容47.1 文件管理控件 VB 提供了驱动器列表框、目录列表框和文件列表框三个特殊的控件,将他们组合起来使用,可以创建与文件操作有关的界面。驱动器列表框DriveListBox目录列表框DirListBox文件列表框FileListBox57.1.1 驱动器列表框(DriveListBox)功能: 一个下拉式列表框,显示当前系统的

2、所有驱动器列表,顶端显示的是当前选定的驱动器。常用属性: Name:名称属性,缺省时该属性值为Drive1; Drive:当前驱动器属性,该属性为运行态属性;可以用于返回在驱动器列表框中当前选取的驱动器号,也可用于指定在驱动器列表框顶端显示的驱动器;常用事件: Change:当用户在驱动器列表框中选择一个驱动器,或在列表框顶端输入一个驱动器标识,或通过赋值语句修改了驱动器列表框的Drive属性都会激活该事件。 一般在此事件中,用drive属性更新目录列表框的path属性,保持驱动器列表框和目录列表框的同步变化。6常用语句:格式:ChDrive Drive 功能:改变当前工作驱动器 对文件进行存

3、取操作时的缺省驱动器。说明: Drive参数是字符型,必须为系统有效的驱动器名。例如: ChDrive “D:” 注意:该语句的执行与驱动器列表框无关,既不会改变列表框的drive属性,列表框顶端的显示,也不会引发驱动器列表框的Change事件。 同样,在驱动器列表框中选定某驱动器,并不能直接将其变更为当前工作驱动器,必须使用如下语句: ChDrive drive1.drive77.1.2 目录列表框( DirListBox ) 功能:显示系统当前驱动器的目录结构,并突出显示当前目录。显示从根目录开始,到当前目录这条路径上的所有目录,以及当前目录的下属所有第一级子目录。目录索引: 当前突出显示

4、的目录,索引值为-1,紧邻其上的目录为-2,再上一层为-3,依次类推;而当前工作目录的第一个子目录的索引值为0,其他子目录的索引值顺次递增。-4-3-2-1018常用属性: Name:名称属性,缺省时为Dir1; Path:设置和返回目录列表框中的当前目录,为运行态属性;可以通过如下两种方式设置:一是赋值语句;二是双击目录列表框中某项。注意:一般目录列表框中显示当前驱动器上的目录,即目录列表框与驱动器列表框必须同步,必须使用如下语句: .path=.drive 此语句通常在驱动器列表框的Change 事件中执行。例如:Private Sub Drive1_change() Dir1.path=

5、Drive1.driveEnd Sub9常用事件Change: 当用户双击目录列表框中的目录项,或通过赋值语句改变了目录列表框的Path属性,都会引发该事件。 一般在此事件中,用path属性更新文件列表框的path属性,保持文件列表框和目录列表框的同步变化。常用语句:格式:ChDir Path功能:改变系统当前工作目录。说明:(1) ChDir语句改变的是当前驱动器(或指定驱动器)的工作目录,而不能改变工作驱动器;(2)该语句与目录列表框无关,即不会改变目录列表框的当前目录,也不会触发Change事件。 同样,在目录列表框中选定某目录,并不能将其变更为当前工作目录,必须使用如下语句: ChDi

6、r dir1.Path107.1.3 文件列表框( FileListBox )功能:显示系统当前目录下的文件列表。常用属性: Name:名称属性,缺省时为File1; Path:设置和返回文件列表中所显示文件的路径,为运行态属性注意:一般文件列表框中显示当前目录之中的文件,即文件列表框与目录列表框必须同步,必须使用如下语句: .path=.path 此语句通常在目录列表框的Change 事件中执行。例如:Private Sub dir1_change() file11.path=dir1.pathEnd Sub11Pattern:文件种类,设置文件列表框显示文件的种类, 缺省为*.* 例: F

7、ile1.Pattern=“*.txt ; *.frm” FileName:设置和返回文件列表框中将显示的文件名称,为运行态属性; 例: File1.fileName=“d:*.frm”ListCount:返回文件(组合框、驱动器、目录)列表框中的所列项目的总数,为运行态属性; ListIndex:设置或返回当前控件上所选择项目的“索引值”,为运行态属性,列表框中的第一项为0,第二项为1,依次类推,若文件列表框中一项也没有选定,则返回-1; dir1.listindex = -2 drive1.listindex = 212常用事件 PathChange: Path属性改变时引发该事件; 注意

8、:在程序中,给文件列表框的Filename属性赋值,也会自动改变它的Path属性,触发本事件。file1.filename=“c:config.sys” PatternChange: Pattern属性改变时引发该事件; Click:单击事件。13文件属性:指定在文件列表框中显示某类属性的文件 ReadOnly:只读属性,缺省值True; Hidden:隐含属性,缺省值False ; System:系统属性,缺省值False; Archive: 存档属性,缺省值True ; Normal: 通常属性,缺省值True;说明:当Normal属性为True 时,System 、Hidden 文件不显

9、示;当Normal属性为False 时, 文件类型置为True的可显示。 file1.normal=false file1.system=true147.1.4 组合使用文件管理控件为使文件管理控件协调工作,关键点是使驱动器、目录、文件列表框同步,通过下述两个事件过程实现:保证目录列表框与驱动器列表框同步更新。保证文件列表框与目录列表框同步更新。来看个例子吧例2。Private Sub drive1_change() dir1.path=drive1.driveEnd SubPrivate Sub dir1_change() file11.path=dir1. pathEnd Sub例:文件控

10、件的组合使用。Private Sub Drive1_Change() Dir1.Path = Drive1.DriveEnd Sub Private Sub Dir1_Change() File1.Path = Dir1.Path File1.Pattern = *.wmfEnd SubPrivate Sub File1_Click() Dim name As String If Right(File1.Path, 1) Then name = File1.Path & & File1.FileName Else name = File1.Path & File1.FileName End I

11、f Picture1.Picture = LoadPicture( name )End SubP13416.2 文件处理 文件: 所谓文件,是一组相关信息的集合,是存放在磁盘上一系列相关的字节.文件访问类型: 顺序访问:从文件头开始,依次访问其中数据,适用于文本文件; 随机访问:适用于以记录形式保存的二进制文件,可以存取任意指定位置的记录; 二进制访问:适用于任意二进制文件 , 以字节为单位存取数据。17文件操作的一般步骤:首先将文件“打开”,即将相关信息加载进内存,建立文件与内存中某个文件缓冲区的关联;文件“存取”操作;最后“关闭”文件,即释放文件所占用的文件缓冲区。文件操作187.2.2文

12、件访问的语句和函数P136 表7-2191打开文件 Open语句 对文件进行操作之前,必须用Open语句打开或建立一个文件功能: 为文件的输入输出分配缓冲区,指定文件的存取类型(模式)和存取方式,定义与文件相关联的文件号。格式: Open 文件名 FOR 模式 Access 存取类型 锁定 AS #文件号 Len=记录长度说明:格式中的Open、 FOR、 Access、AS、Len为关键字文件名(Filename): 文件的名字,可用字符串或字符型变量表示。可以包括盘符和路径。3) 模式(mode):20说明访问文件的方式:OutPut设定为顺序输出模式InPut设定为顺序输入模式Appen

13、d设定为添加模式,与OutPut方式不同,以Append方式打开顺序文件时,文件指针定位在文件末尾,写入的数据添加到原来文件的后面。Random设定为随机访问的模式Binary设定为二进制访问模式如果缺省FOR子句,将以随机访问模式Random打开文件。21程序磁盘文件输入数据磁盘文件输出数据读文件方式:Input写文件方式:OutputAppend224) 存取类型(Access) 用来指定访问文件的类型。可以是:Read对打开的文件只能进行读操作Write对打开的文件只能进行写操作Read Write对打开的文件可读可写5) 文件号(Fileno) 取值范围在1511范围之内。执行Open

14、语句时,文件与分配给定的文件号相关联。6) 记录长度(Reclength)是一个整型表达式,其值32767。对顺序文件,用该参数设定缓冲区的大小。不指定,缓冲区的缺省值为512个字节。23注意: 1) 如果以Output、Append、Random和Binary模式打开一个不存在的文件,Visual Basic会创建一个相应的文件。 2) 在Input、Random和Binary模式下,可用不同的文件号打开同一个文件。但以Output和Append模式打开的文件在关闭之前不能用不同的文件号重复地打开它。 3) 所有当前使用的文件号必须是唯一的。即当前使用的文件号不能再分配给其他文件。 4) 如

15、果以Output模式打开一个已存在的顺序文件,则该文件中原来数据将被覆盖。241) Open Exam FOR Output AS #5 如果文件“Exam”不存在,则建立一个新文件,可以将数据写入到文件中去。如果文件“Exam”已存在,则该语句打开已存在的文件,新写入的数据将覆盖原来的数据。2) Open Exam FOR Append AS #5 如果文件“Exam”不存在,则建立一个新文件,否则打开已存在的名为“Exam”的文件,新写入的数据添加到文件的后面,原来的数据仍然存在。3) Open Exam FOR Input AS #5 打开已存在的名为Exam的文件,可从中读出数据。如果

16、文件“Exam”不存在将产生“File Not Found”错误。P138举 例252、关闭文件格式:Close #功能:关闭指定的文件号对应的文件。 释放相应缓冲区和与该文件相联系的文件号。说明:(1)该语句适用于任何文件;(2)语句中可以包含多个文件号,文件号之间用逗号分隔(3)若语句中缺省文件号参数,则关闭所有用Open语句打开的文件;(4)当应用程序结束时,会自动关闭所有文件。例1:Close #1,#2例2:Close263、关闭所有文件Reset语句格式:Reset功能:关闭所有用Open语句打开的文件。说明:适用于任何文件。274、锁定和解锁语句Lock和Unlock语句lock

17、语句格式:Lock 功能:锁定指定文件号所对应的文件,不允许其他用户对该文件进行读写操作。Unlock语句格式:Unlock 功能:解除锁定的文件。28相关函数和语句Eof(文件号) 当文件指针到达文件结束标志时返回True,否则返回False。FreeFile(文件号范围) 返回Open语句可以使用的下一个有效文件号LOF(文件号) 返回已用Open语句打开的文件的字节数(文件长度)P140297.3 顺序文件 以顺序方式存取的文件称为顺序文件,一般是文本文件;特性: 每行数据长度可以不同; 增加数据时,只能添加到原有数据的最后; 查找数据时,必须从头开始顺序查找。适用: 每行数据长度不确定

18、时; 数据不经常做新增、修改和删除操作时; 处理数据是依次连续处理。307.3.1 顺序文件的写操作1、打开文件格式:Open For As # 功能:用指定的文件号以顺序输出模式或添加模式打开文件。说明:(1)文件名可以是字符串,包含路径;(2)若指定的文件不存在,系统将创建一个相应的文件;(3)以Output方式打开文件,文件中原有的数据被覆盖;(4)以Append方式打开文件,写入的数据将添加到原文件的尾部(5)文件号的使用必须是唯一的,即当前已经占用的文件号不能再分配给其他文件使用;文件号的使用范围是1-511;(6)一个文件在用Output和Append方式打开后,不能再重复打开31

19、例1:Open “D:hbTest.txt” For Output as #1例2:Dim sFileName As String sFileName=“D:hbTest.txt” Open sFileName For Append As #100例3:Open “File1” For OutPut As #9 Open “File2” For Output As #9例4:Open “File1” For Append As #10 Open “File1” For Append As #11以相同的文件号打开两个不同的文件在文件未关闭前又重复打开 错误在哪里?32、Print 语句格式:P

20、rint ,功能:将输出列表中的语句写到顺序文件中。说明:该语句和普通的Print语句的输出控制格式完全相同,也分紧凑和标准两种。执行上述程序后,文件test.dat中的数据如下Open “test.dat” for output as #10print #10, 1 , 2 , 3print #10,”We”,”study”,”VB6.0”Close 10例1: 2 3We study VB6.033提示: 为了避免以紧凑格式输出的各字符串难以明显区分,可以人为加上逗号间隔: 例如: print #10,”We”;”,” ; ”study”;”,”; ”VB6.0”上述语句的执行结果为:We

21、 ,study ,VB6.0Open “test.dat” for output as #10Print #10 , 1;2;3Print #10 , ”We”;”study”;”VB6.0”Close 101 2 3WestudyVB6.0例2:执行上述程序后,文件test.dat中的数据如下:34Private Sub Command1_Click() Dim i As Integer, a(10) As Integer Open d:test.txt For Output As #1 For i = 1 To 10 a(i) = Int(Rnd * 100) + 100 Print a(

22、i); Print #1, a(i); Next i Print Print #1, Close #1End Sub353 Write语句格式:Write ,功能:将输出列表中的语句写到顺序文件中。说明:Write语句和Print语句的功能基本相同,它们之间的差别主要在:(1)Write语句写入的数据按照紧凑格式存放,各数据项之间自动插入逗号作为分隔符;(2)Write语句写入的字符串数据自动加上双引号作为限界符。OPEN “TEST.DAT” for output as # 12Write #12 ,1 ,-2 ,3 ,”ABC”Write #12Write #12, 5,6,7,”DEF”

23、,Write #12Close #12例:1,-2,3,”ABC”5,6,7,”DEF”上述程序执行后, TEST.DAT文件中的数据为:36Private Sub Command2_Click() Dim i As Integer, a(10) As Integer Open d:test.txt For Output As #1 For i = 1 To 10 a(i) = Int(Rnd * 100) + 100 Print a(i); Write #1, a(i), Next i Print Write #1, Close #1End Sub377.3.2 顺序文件的读操作 当一个文件

24、存在时,可以对它进行读操作。读操作分为两种,一种是一个数据一个数据地读,另一种是一行数据一行数据地读。1、打开文件格式:Open For Input As 功能:用指定的文件号以顺序输入模式打开文件。说明:以Input方式打开的文件,只能进行读操作。382、Input 语句格式:Input ,变量表功能:从一个打开的顺序文件中读取数据,并将它们赋值给相应的变量。说明:(1)变量表可以包含简单变量和数组元素,变量之间用逗号间隔,变量类型必须与文件中的数据项的类型一致;(2)从顺序文件中读数据时,要从头开始,依次读出,若数据类型和变量类型不一致,则赋一个初值给对应的变量;(3)从顺序文件读数据时,

25、忽略前导空格、回车符、换行符;(4)读取数值型数据时,以其后的第一个空格或逗号或回车换行符作为结束;(5)读取字符型数据时,以第一个不在双引号里的逗号或回车换行符作为结束;(6)逻辑型和日期型数据以#号作为起始符和结束符,要求大写;39Test.txt 中数据:34 45 78 789Dim A As Integer,B AS Integer,C As IntegerDim St As StringInput #2 ,A,B,C,St A=34,B=45,C=78,St=“789”举 例40 例:文件test.dat中数据如下: This is File Test.dat,-2365,4893

26、,#True# 要求按下面的格式输出在窗体上: This is File Test.dat -2365 4893 TruePrivate sub form_click() Dim x as integer,y a integer,logic as boolean Dim filenumber as integer,chr as string Filenumber=freefile Open “Test.dat” for input as #filenumber Input #filenumber.chr Input #filenumber,x,y,logic Print char Print

27、x,y,logicEnd sub程序代码如左413、Line Input语句格式:Line Input ,功能:将顺序文件以行为单位读出并赋值给一个变量。说明:(1)变量为字符型变量,或字符型数组元素,或变体型变量;(2)将数据行中除回车符和换行符以外的所有字符都赋值给相应的变量。42Private Sub Form_Click() Dim line as String,filenumber as integer,str as string filename=freefile Open “c:config.sys” For Input As #filenumber Do While Not E

28、OF(filenumber) Line Input #1, line str=str+line+chr(13)+chr(10) Loop Close #filenumber text1.text=strEnd Sub例:将c盘根目录下的config.sys文件的内容 显示在文本框中.434、 Input函数格式:Input(,)功能:从指定的文件中读取指定个数的字符(含空格 及各类符号)。 例:s=Input(10,#2)44顺序文件的修改与删除 顺序文件的特点是: (1)数据只能从头依次读出; (2)写文件时要么覆盖原来的文件,要么添加在文件的最后 这两个特点给顺序文件的修改与删除带来了困难

29、。解决方案(以修改为例):(1)读取数据;(2)判断是否要修改?不修改,则将数据原封不动地添加到一个临时文件中;(3)要修改,则将新数据添加到该临时文件中;(4)重复1-3步直到文件结束;(5)删除原始文件;(6)将临时文件重新命名为原始文件的名字。45顺序文件的应用 顺序文件的应用体现在两方面:(1)从文件中读取原始数据并提供给程序处理:(2)将程序处理结果存放到文件中。例:数据文件Test1.Txt有10个同学的成绩,格式如下: 学号,英语成绩,数学成绩,计算机成绩,化学成绩要求:统计每个学生的不及格门数,并将不及格门数超过1门(1)的学生学号和不及格门数写入到文件Test2.Txt中。程

30、序:读取原始数据: Dim a(10, 5) As Integer Open d:test1.txt For Input As #1 For i = 1 To 10 For j = 1 To 5 Input #1, a(i, j) Next j Next i46统计不及格门数并写入目标文件Open d:test2.txt For Output As #2For i = 1 To 10 s = 0 For j = 2 To 5 If a(i, j) 1 Then Write #2, a(i, 1), s Print a(i, 1), s End If Next IClose477.4 随机文件处

31、理 以随机方式存取的文件称为随机文件,也称记录文件,由一组长度相等的记录组成,一般用于数据库文件,具有以下几个特点: (1)记录定长; (2)若记录为单字段,则可对应与任何一个VB的标准类型;若记录为多字段,则必须由用户进行自定义; (3)随机文件的访问,可根据记录号随机访问任何一个记录。48格式:Open For Random As # Len=功能:打开一个随机文件。说明:(1)Random为文件的缺省访问模式,可省略;(2)Len为指定的记录长度,不能比实际写入的数据短,否则会出错 7.4.2 随机文件的打开497.4.1 变量声明 在处理随机文件之前,必须先声明处理文件数据的变量;1、

32、定义记录类型 如果需要打开或创建的随机文件的记录是多字段的,必须在模块中预先自定义一个类型。格式:Type As As As End Type说明:(1)数据类型为VB的标准数据类型;(2)若字段为字符型,则通常定义为定长字符串;(3)类型名和变量名的命名规则相同。50例:Type Student_Score Name As String*8 Student_Id As String*7 English As Integer Math As Integer Computer As Integer End Type2、声明变量 在具体进行随机文件的读写操作时,还必须以定义的类型声明一些变量。 例:Dim Stu_Score1 As Student_Score517.4.3 随机文件的写操作格式:Put # ,,变量功能:将变量的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论