欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    第七章节授课ppt-第7章文件.ppt

    • 资源ID:2568497       资源大小:434.01KB        全文页数:54页
    • 资源格式: PPT        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第七章节授课ppt-第7章文件.ppt

    第 7 章 文 件,2,掌握文件管理控件的主要属性、事件和方法 掌握文件的基本概念 掌握文件的常用函数、语句 掌握 顺序文件的读、写操作 了解随机(记录)文件 了解二进制文件,教学要求,3,7.1 文件管理控件 7.2 文件处理 7.3 顺序文件 7.4 随机文件处理,教学内容,4,7.1 文件管理控件 VB 提供了驱动器列表框、目录列表框和文件列表框三个特殊的控件,将他们组合起来使用,可以创建与文件操作有关的界面。,驱动器列表框 DriveListBox,目录列表框 DirListBox,文件列表框 FileListBox,5,7.1.1 驱动器列表框(DriveListBox) 功能: 一个下拉式列表框,显示当前系统的所有驱动器列表,顶端显示的是当前选定的驱动器。,常用属性:,Name:名称属性,缺省时该属性值为Drive1;,Drive:当前驱动器属性,该属性为运行态属性;可以用于返回在驱动器列表框中当前选取的驱动器号,也可用于指定在驱动器列表框顶端显示的驱动器;,常用事件:,Change:当用户在驱动器列表框中选择一个驱动器,或在列表框顶端输入一个驱动器标识,或通过赋值语句修改了驱动器列表框的Drive属性都会激活该事件。,一般在此事件中,用drive属性更新目录列表框的path属性,保持驱动器列表框和目录列表框的同步变化。,6,常用语句: 格式:ChDrive Drive 功能:改变当前工作驱动器 对文件进行存取操作时的缺省驱动器。 说明: Drive参数是字符型,必须为系统有效的驱动器名。 例如: ChDrive “D:” 注意:该语句的执行与驱动器列表框无关,既不会改变列表框的drive属性,列表框顶端的显示,也不会引发驱动器列表框的Change事件。 同样,在驱动器列表框中选定某驱动器,并不能直接将其变更为当前工作驱动器,必须使用如下语句: ChDrive drive1.drive,7,7.1.2 目录列表框( DirListBox ) 功能:显示系统当前驱动器的目录结构,并突出显示当前目录。显示从根目录开始,到当前目录这条路径上的所有目录,以及当前目录的下属所有第一级子目录。,目录索引: 当前突出显示的目录,索引值为-1,紧邻其上的目录为-2,再上一层为-3,依次类推;而当前工作目录的第一个子目录的索引值为0,其他子目录的索引值顺次递增。,-4 -3 -2 -1 0 1,8,常用属性: Name:名称属性,缺省时为Dir1; Path:设置和返回目录列表框中的当前目录,为运行态属性;可以通过如下两种方式设置:一是赋值语句;二是双击目录列表框中某项。 注意:一般目录列表框中显示当前驱动器上的目录,即目录列表框与驱动器列表框必须同步,必须使用如下语句: .path=.drive 此语句通常在驱动器列表框的Change 事件中执行。 例如:,Private Sub Drive1_change() Dir1.path=Drive1.drive End Sub,9,常用事件 Change: 当用户双击目录列表框中的目录项,或通过赋值语句改变了目录列表框的Path属性,都会引发该事件。 一般在此事件中,用path属性更新文件列表框的path属性,保持文件列表框和目录列表框的同步变化。 常用语句: 格式:ChDir Path 功能:改变系统当前工作目录。 说明: (1) ChDir语句改变的是当前驱动器(或指定驱动器)的工作目录,而不能改变工作驱动器; (2)该语句与目录列表框无关,即不会改变目录列表框的当前目录,也不会触发Change事件。 同样,在目录列表框中选定某目录,并不能将其变更为当前工作目录,必须使用如下语句: ChDir dir1.Path,10,7.1.3 文件列表框( FileListBox ) 功能:显示系统当前目录下的文件列表。 常用属性: Name:名称属性,缺省时为File1; Path:设置和返回文件列表中所显示文件的路径,为运行态属性 注意:一般文件列表框中显示当前目录之中的文件,即文件列表框与目录列表框必须同步,必须使用如下语句: .path=.path 此语句通常在目录列表框的Change 事件中执行。 例如:,Private Sub dir1_change() file11.path=dir1.path End Sub,11,Pattern:文件种类,设置文件列表框显示文件的种类, 缺省为*.* 例: File1.Pattern=“*.txt ; *.frm” FileName:设置和返回文件列表框中将显示的文件名称,为运行态属性; 例: File1.fileName=“d:*.frm” ListCount:返回文件(组合框、驱动器、目录)列表框中的所列项目的总数,为运行态属性; ListIndex:设置或返回当前控件上所选择项目的“索引值”,为运行态属性,列表框中的第一项为0,第二项为1,依次类推,若文件列表框中一项也没有选定,则返回-1; dir1.listindex = -2 drive1.listindex = 2,12,常用事件 PathChange: Path属性改变时引发该事件; 注意:在程序中,给文件列表框的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 文件不显示;当Normal属性为False 时, 文件类型置为True的可显示。 file1.normal=false file1.system=true,14,7.1.4 组合使用文件管理控件 为使文件管理控件协调工作,关键点是使驱动器、目录、文件列表框同步,通过下述两个事件过程实现: 保证目录列表框与驱动器列表框同步更新。 保证文件列表框与目录列表框同步更新。,来看个例子吧例2。,Private Sub drive1_change() dir1.path=drive1.drive End Sub,Private Sub dir1_change() file11.path=dir1. path End Sub,例:文件控件的组合使用。,Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub Private Sub Dir1_Change() File1.Path = Dir1.Path File1.Pattern = “*.wmf“ End Sub Private 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 If Picture1.Picture = LoadPicture( name ) End Sub,P134,16,.2 文件处理 文件: 所谓文件,是一组相关信息的集合,是存放在磁盘上一系列相关的字节. 文件访问类型: 顺序访问:从文件头开始,依次访问其中数据,适用于文本文件; 随机访问:适用于以记录形式保存的二进制文件,可以存取任意指定位置的记录; 二进制访问:适用于任意二进制文件 , 以字节为单位存取数据。,17,文件操作的一般步骤: 首先将文件“打开”,即将相关信息加载进内存,建立文件与内存中某个文件缓冲区的关联; 文件“存取”操作; 最后“关闭”文件,即释放文件所占用的文件缓冲区。,文件操作,18,7.2.2文件访问的语句和函数,P136 表7-2,19,1打开文件 Open语句 对文件进行操作之前,必须用Open语句打开或建立一个文件 功能: 为文件的输入输出分配缓冲区,指定文件的存取类型(模式)和存取方式,定义与文件相关联的文件号。 格式: Open 文件名 FOR 模式 Access 存取类型 锁定 AS #文件号 Len=记录长度 说明: 格式中的Open、 FOR、 Access、AS、Len为关键字 文件名(Filename): 文件的名字,可用字符串或字符型变量表示。可以包括盘符和路径。 3) 模式(mode):,20,说明访问文件的方式: OutPut 设定为顺序输出模式 InPut 设定为顺序输入模式 Append 设定为添加模式,与OutPut方式不同, 以Append方式打开顺序文件时,文件指 针定位在文件末尾,写入的数据添加到 原来文件的后面。 Random 设定为随机访问的模式 Binary 设定为二进制访问模式 如果缺省FOR子句,将以随机访问模式Random打开文件。,21,程序,磁盘文件,输入 数据,磁盘文件,输出 数据,读文件方式: Input,写文件方式: Output Append,22,4) 存取类型(Access) 用来指定访问文件的类型。可以是: Read 对打开的文件只能进行读操作 Write 对打开的文件只能进行写操作 Read Write 对打开的文件可读可写,5) 文件号(Fileno) 取值范围在1511范围之内。执行Open语句时,文件与分配给定的文件号相关联。 6) 记录长度(Reclength) 是一个整型表达式,其值32767。 对顺序文件,用该参数设定缓冲区的大小。 不指定,缓冲区的缺省值为512个字节。,23,注意: 1) 如果以Output、Append、Random和Binary模式打开一个不存在的文件,Visual Basic会创建一个相应的文件。 2) 在Input、Random和Binary模式下,可用不同的文件号打开同一个文件。但以Output和Append模式打开的文件在关闭之前不能用不同的文件号重复地打开它。 3) 所有当前使用的文件号必须是唯一的。即当前使用的文件号不能再分配给其他文件。 4) 如果以Output模式打开一个已存在的顺序文件,则该文件中原来数据将被覆盖。,24,1) 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的文件,可从中读出数据。如果文件“Exam”不存在将产生“File Not Found”错误。,P138,举 例,25,2、关闭文件 格式:Close # 功能:关闭指定的文件号对应的文件。,释放相应缓冲区和与该文件相联系的文件号。,说明: (1)该语句适用于任何文件; (2)语句中可以包含多个文件号,文件号之间用逗号分隔 (3)若语句中缺省文件号参数,则关闭所有用Open语句打开的文件; (4)当应用程序结束时,会自动关闭所有文件。 例1:Close #1,#2 例2:Close,26,3、关闭所有文件Reset语句 格式:Reset 功能:关闭所有用Open语句打开的文件。 说明:适用于任何文件。,27,4、锁定和解锁语句Lock和Unlock语句 lock语句 格式:Lock 功能:锁定指定文件号所对应的文件,不允许其他用户对该文件进行读写操作。 Unlock语句 格式:Unlock 功能:解除锁定的文件。,28,相关函数和语句 Eof(文件号) 当文件指针到达文件结束标志时返回True,否则返回False。 FreeFile(文件号范围) 返回Open语句可以使用的下一个有效文件号 LOF(文件号) 返回已用Open语句打开的文件的字节数(文件长度),P140,29,7.3 顺序文件 以顺序方式存取的文件称为顺序文件,一般是文本文件; 特性: 每行数据长度可以不同; 增加数据时,只能添加到原有数据的最后; 查找数据时,必须从头开始顺序查找。 适用: 每行数据长度不确定时; 数据不经常做新增、修改和删除操作时; 处理数据是依次连续处理。,30,7.3.1 顺序文件的写操作 1、打开文件 格式:Open For As # 功能:用指定的文件号以顺序输出模式或添加模式打开文件。 说明: (1)文件名可以是字符串,包含路径; (2)若指定的文件不存在,系统将创建一个相应的文件; (3)以Output方式打开文件,文件中原有的数据被覆盖; (4)以Append方式打开文件,写入的数据将添加到原文件的尾部 (5)文件号的使用必须是唯一的,即当前已经占用的文件号不能再分配给其他文件使用;文件号的使用范围是1-511; (6)一个文件在用Output和Append方式打开后,不能再重复打开,31,例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 语句 格式:Print , 功能:将输出列表中的语句写到顺序文件中。 说明:该语句和普通的Print语句的输出控制格式完全相同,也分紧凑和标准两种。,执行上述程序后,文件test.dat中的数据如下,Open “test.dat” for output as #10 print #10, 1 , 2 , 3 print #10,”We”,”study”,”VB6.0” Close 10,例1:,2 3 We study VB6.0,33,提示: 为了避免以紧凑格式输出的各字符串难以明显区分,可以人为加上逗号间隔: 例如: print #10,”We”;”,” ; ”study”;”,”; ”VB6.0” 上述语句的执行结果为:We ,study ,VB6.0,Open “test.dat” for output as #10 Print #10 , 1;2;3 Print #10 , ”We”;”study”;”VB6.0” Close 10,1 2 3 WestudyVB6.0,例2:,执行上述程序后,文件test.dat中的数据如下:,34,Private 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(i); Print #1, a(i); Next i Print Print #1, Close #1 End Sub,35,3 Write语句 格式:Write , 功能:将输出列表中的语句写到顺序文件中。 说明:Write语句和Print语句的功能基本相同,它们之间的差别主要在: (1)Write语句写入的数据按照紧凑格式存放,各数据项之间自动插入逗号作为分隔符; (2)Write语句写入的字符串数据自动加上双引号作为限界符。,OPEN “TEST.DAT” for output as # 12 Write #12 ,1 ,-2 ,3 ,”ABC” Write #12 Write #12, 5,6,7,”DEF”, Write #12 Close #12,例:,1,-2,3,”ABC” 5,6,7,”DEF”,上述程序执行后, TEST.DAT文件中的数据为:,36,Private 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 #1 End Sub,37,7.3.2 顺序文件的读操作 当一个文件存在时,可以对它进行读操作。读操作分为两种,一种是一个数据一个数据地读,另一种是一行数据一行数据地读。 1、打开文件 格式:Open For Input As 功能:用指定的文件号以顺序输入模式打开文件。 说明:以Input方式打开的文件,只能进行读操作。,38,2、Input 语句 格式:Input ,变量表 功能:从一个打开的顺序文件中读取数据,并将它们赋值给相应的变量。,说明: (1)变量表可以包含简单变量和数组元素,变量之间用逗号间隔,变量类型必须与文件中的数据项的类型一致; (2)从顺序文件中读数据时,要从头开始,依次读出,若数据类型和变量类型不一致,则赋一个初值给对应的变量; (3)从顺序文件读数据时,忽略前导空格、回车符、换行符; (4)读取数值型数据时,以其后的第一个空格或逗号或回车换行符作为结束; (5)读取字符型数据时,以第一个不在双引号里的逗号或回车换行符作为结束; (6)逻辑型和日期型数据以#号作为起始符和结束符,要求大写;,39,Test.txt 中数据:34 45 78 789,Dim A As Integer,B AS Integer,C As Integer Dim St As String Input #2 ,A,B,C,St,A=34,B=45,C=78,St=“789”,举 例,40,例:文件test.dat中数据如下: This is File Test.dat,-2365,4893,#True# 要求按下面的格式输出在窗体上: This is File Test.dat -2365 4893 True,Private 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 x,y,logic End sub,程序代码如左,41,3、Line Input语句 格式:Line Input , 功能:将顺序文件以行为单位读出并赋值给一个变量。 说明: (1)变量为字符型变量,或字符型数组元素,或变体型变量; (2)将数据行中除回车符和换行符以外的所有字符都赋值给相应的变量。,42,Private 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 EOF(filenumber) Line Input #1, line str=str+line+chr(13)+chr(10) Loop Close #filenumber text1.text=str End Sub,例:将c盘根目录下的config.sys文件的内容 显示在文本框中.,43,4、 Input函数 格式:Input(,) 功能:从指定的文件中读取指定个数的字符(含空格 及各类符号)。 例:s=Input(10,#2),44,顺序文件的修改与删除 顺序文件的特点是: (1)数据只能从头依次读出; (2)写文件时要么覆盖原来的文件,要么添加在文件的最后 这两个特点给顺序文件的修改与删除带来了困难。 解决方案(以修改为例): (1)读取数据; (2)判断是否要修改?不修改,则将数据原封不动地添加到一个临时文件中; (3)要修改,则将新数据添加到该临时文件中; (4)重复1-3步直到文件结束; (5)删除原始文件; (6)将临时文件重新命名为原始文件的名字。,45,顺序文件的应用 顺序文件的应用体现在两方面:(1)从文件中读取原始数据并提供给程序处理:(2)将程序处理结果存放到文件中。 例:数据文件Test1.Txt有10个同学的成绩,格式如下: 学号,英语成绩,数学成绩,计算机成绩,化学成绩 要求:统计每个学生的不及格门数,并将不及格门数超过1门(1)的学生学号和不及格门数写入到文件Test2.Txt中。 程序:,读取原始数据: 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 i,46,统计不及格门数并写入目标文件 Open “d:test2.txt“ For Output As #2 For 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 I Close,47,7.4 随机文件处理 以随机方式存取的文件称为随机文件,也称记录文件,由一组长度相等的记录组成,一般用于数据库文件,具有以下几个特点: (1)记录定长; (2)若记录为单字段,则可对应与任何一个VB的标准类型;若记录为多字段,则必须由用户进行自定义; (3)随机文件的访问,可根据记录号随机访问任何一个记录。,48,格式: Open For Random As # Len= 功能:打开一个随机文件。 说明: (1)Random为文件的缺省访问模式,可省略; (2)Len为指定的记录长度,不能比实际写入的数据短,否则会出错,7.4.2 随机文件的打开,49,7.4.1 变量声明 在处理随机文件之前,必须先声明处理文件数据的变量; 1、定义记录类型 如果需要打开或创建的随机文件的记录是多字段的,必须在模块中预先自定义一个类型。 格式: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 Type 2、声明变量 在具体进行随机文件的读写操作时,还必须以定义的类型声明一些变量。 例:Dim Stu_Score1 As Student_Score,51,7.4.3 随机文件的写操作 格式:Put # ,,变量 功能:将变量的值写入到随机文件中。 说明: (1)记录号可省略,省略时将数据写入到当前文件指针处; (2)执行过一次Put操作,文件指针自动下移一个记录。,52,Private Sub Command1_Click() Dim nFileNum As Integer Dim RecLen As Integer, i As Integer RecLen = Len(Person) Open “d:t3.txt“ For Random As #1 Len = RecLen For i = 1 To 3 Person.name = InputBox(“输入姓名“) Person.Money = InputBox(“输入工资“) Put #1, , Person Next i Person.name = “China“ Person.Money = 1000 Seek #1, 3 Put #1, , Person Close #1 End Sub,记录号,指定 记录号,Type aa name As String * 8 Money As Integer End Type,窗体模块(通用)中 Dim Person As aa,53,7.4.4 随机文件的读操作 格式:Get #,记录号,变量 功能:从随机文件中读取数据,并赋值给相应的变量。 说明: (1)若不指定记录号,则读取当前文件指针所指的记录; (2)执行一次Get操作,文件指针自动下移一个记录。,Private Sub Command2_Click() Dim nFileNum As Integer Dim RecLen As Integer, i As Integer nFileNum = FreeFile RecLen = Len(Person) Open “d:t3.txt“ For Random As #nFileNum Len = RecLen Do While Not EOF(nFileNum) Get #nFileNum, , Person Print Person. Name, Print Person. Money Loop Close # nFileNum End Sub,54,7.5 二进制文件 以二进制方式存取的文件称为二进制文件,可以是任何类型的文件,存取方式和随机文件相同,二进制访问模式可以定位到文件中的任意一个字节的位置,读取的字节长度取决于语句中“变量”的长度。 1、打开文件 格式:Open For Binary As # 功能:以二进制访问模式打开文件。 2、读写操作 语句格式和随机文件相同,系统在实现上有所不同。,

    注意事项

    本文(第七章节授课ppt-第7章文件.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开