程序设计第五章ppt课件_第1页
程序设计第五章ppt课件_第2页
程序设计第五章ppt课件_第3页
程序设计第五章ppt课件_第4页
程序设计第五章ppt课件_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

第5讲 文件处理应用程序设计,教学要求,1掌握文件读写的基本方法; 2、掌握与文件处理相关的语句和函数的用法; 3、理解文件系统控件的基本功能; 4、了解文件管理器应用程序开发过程。,5.1 文件管理器程序任务,5.1.1 任务概述 文件是指存储在外部介质上的数据的集合,是一种可以永久性存储数据的形式。操作系统以文件为单位管理数据,文件名是文件访问的标示。把数据写入文件或从文件中读取数据,计算机需要先根据文件名找到指定的文件,然后再执行读写操作。 采用VB中提供的驱动器列表框、目录列表框和文件列表框三种控件可实现上述功能。在本章中我们将建立一个简单的文件管理器。,5.1 文件管理器程序任务,5.1.2 界面设计 1、创建工程 2、创建窗体 5.1.3 代码设计 1、编写ClearAttr过程 2、编写ShowAttr过程 3、驱动器列表框控件的Change事件 4、目录列表框控件的Change事件 5、文件列表框控件的Change事件,5.2 文件系统控件及相关语句,5.2.1 改变当前驱动器 语法:ChDrive 说明:驱动器名是一个字符串表达式,指定一个存在的驱动器。使用空字符串,驱动器不变;使用多个字符,则使用首字母。 例:ChDrive “D” 5.2.2 改变当前目录 语法:ChDir 说明:语句改变缺省目录位置,但不会改变缺省驱动器位置。 例:ChDir “D:Temp”,5.2 文件系统控件及相关语句,5.2.3 删除文件 语法:Kill 说明:Kill支持统配符(*和?) 例:Kill “D:DataTest.txt“ Kill “C:TEMP*.tmp“ 5.2.4 拷贝文件 语法:FileCopy , 说明:源文件和目标文件名是字符串表达式,可以包含驱动器、文件夹。不能对打开的文件执行复制操作。,5.2 文件系统控件及相关语句,5.2.5 文件重命名 语法: Name As 说明:Name语句重新命名文件并将其移动到不同的目录或文件夹中。可跨驱动器移动文件,且只能重命名文件,不能创建新文件。 Dim OldName,NewName As String OldName=“C:mydiroldfile” NewName=“C:youdirNewfile” Name OldName As NewName,5.2 文件系统控件及相关语句,5.2.6 创建新目录 语法:MkDir 说明:若没有指定驱动器,则在当前驱动器上创建目录。例:Mkdir “成绩单“ 5.2.7 删除目录 语法:RmDir 说明:在使用此命令前,应先使用Kill命令删除所有文件,否则会发生错误。 例:RmDir “C:成绩单临时文件夹”,5.2 文件系统控件及相关语句,5.2.8 得到当前路径 语法:CurDir 说明:若没有指定驱动器,或驱动器名为空,在返回当前驱动器的路径。返回值为Variant(String)。 C盘的当前路径为C:Program Files D盘的当前路径为D:Visual Basic程序设计 当前驱动器为C,则: Dim MyPath As String MyPath=CurDir 返回C:Program Files MyPath=CurDir(“C”) 返回C:Program Files MyPath=CurDir(“D”) 返回D:Visual Basic程序设计,5.2 文件系统控件及相关语句,5.2.9 设置文件属性 语法:SetAttr , SetAttr “test.txt”,vbArechive+vbReadOnly,5.2 文件系统控件及相关语句,5.2.10 得到文件属性 语法:GetAttr 若当前文件夹下有一个test.txt,通过以下方法可获得文件的属性: Dim iAttr As Integer:iAttr=GetAttr(“test.txt”) If iAttr And vbNormal Then:debug.print “普通文件” If iAttr And vbReadOnly Then:debug.print “只读文件” If iAttr And vbHidden Then:debug.print “隐藏文件” If iAttr And vbSystem Then:debug.print “系统文件” If iAttr And vbDirectory Then:debug.print “目录” If iAttr And vbArchive Then:debug.print “存档文件”,5.2 文件系统控件及相关语句,5.2.11 常用文件系统控制 1、驱动器列表框 下拉式列表框,显示计算机内全部有效的驱动器。最常用的属性为Drive属性,该属性用于在程序运行时设置或返回选定的驱动器,只在运行阶段有效。如:Drive1.Drive=“C:” 指定C盘为当前驱动器 使用ChDrive可以使指定的驱动器设置为当前驱动器。 ChDrive Drive1.Drive 驱动器列表框最重要的事件是Change事件。,5.2 文件系统控件及相关语句,5.2.11 常用文件系统控制 2、目录列表框 以列表方式显示当前驱动器上的所有目录,运行时双击即可打开下一级目录。 最常用的属性是Path属性,只在运行阶段有效。 Dir1.Path=“C:Visual BasicStu” 指定C盘Visual BasicStu为当前目录 使用ChDir语句可使指定的目录成为当前目录: ChDir Dir1.Path 目录列表框最重要的事件是Change事件。,5.2 文件系统控件及相关语句,5.2.11 常用文件系统控件 3、文件列表框 以列表方式显示当前目录下的所有文件,文件列表框的三种属性: (1)Path属性:用于设置文件列表框中所示的完整路径:File1.Path=“C:Visual BasicStu” (2)Pattern属性:设置列表框中可以显示的文件类型,默认为*.*,表示所有文件: File1.Pattern=“*.txt” (3)FileName属性:设置或返回选定的文件名称,只在运行阶段可用。,5.3 标准文件输入/输出,5.3.1 顺序文件 1、顺序文件的打开和关闭 顺序文件采用记录结构,按次序一个接一个地排列记录,只提供第一个记录的存储位置。需要读取记录时,必须按顺序从第一条记录开始依次读出数据,直到找到所需记录为止。 (1)打开顺序文件 格式:Open For As # ,5.3 标准文件输入/输出,说明: 1)文件名是所要打开的文件的名称,其中包含完整的路径名称。 2)模式是指打开文件的方式: Input:以读方式打开文件 Output:以写方式打开文件,创建一个新的顺序文件,等待数据输出。若存在同名文件。则覆盖原有文件内容。 Append:以追加方式打开文件。若文件不存在则创建新文件。,5.3 标准文件输入/输出,说明: 3)文件号是一个1511之间的整数,同时被打开的每个文件的文件号不能相同。文件被打开后,文件号就代表该文件,通过文件号读写文件,直到文件被关闭。例: Open “A:D1.dat” For Input As # 1 以读方式打开A盘中的D1.dat文件 Open “A:D2.txt” For Output As # 2 以写方式打开A盘中的D2.dat文件。,5.3 标准文件输入/输出,5.3.1 顺序文件 (2)关闭顺序文件 格式:Close # ,# 说明: 1)文件号是Open语句打开文件时指定的文件号 2)Close语句可同时关闭多个已打开的文件 例:Close # 1 关闭文件号为1的文件 Close #1,#2 关闭文件号为1和2的两个文件 Close 关闭所有文件,5.3 标准文件输入/输出,2、顺序文件的写操作 (1)Print # 语句 格式:Print # ,输出项列表 功能:将各输出项的值写入到指定的文件中。 说明: 1)输出项可以是常数、变量或表达式,输出多于一项,中间用逗号或分号分隔。 2)输出项之间用分号分隔时,按紧凑格式输出到文件。若是字符串,则输出项之间无空格;数值型数据在整数前留一个前导空格,在负数前输出一个负号。,5.3 标准文件输入/输出,2、顺序文件的写操作 3)输出项之间使用逗号分隔时,按分区格式输出到文件,10列为一个分区。 4)在输出项中可使用spc(n)函数输出n个空格,使用Tab(n)函数指定其后的输出项从n列开始输出。 5)Print #语句的末尾可以加分号、逗号或不加任何符号。加分号表示下一个Print #语句的输出项不换行,直接按紧凑格式输出;加逗号表示下一个Print #语句的输出项不换行,按分区格式输出;不使用任何符号时,下一个Print #语句的输出项换行输出。,5.3 标准文件输入/输出,Private Sub Command1_Click() Open “j:printtest.txt“ For Output As #1 Print #1, “Print # 语句测试“ Print #1, Print #1, “第一分区“; “第二分区“ Print #1, “你好!“, 2 * 3, 2 + 3 Print #1, Spc(2); “输出两个空格“ Print #1, Tab(5); “从第五列开始输出“ Print #1, “行 1“ Print #1, 5; 6; -8 Close #1 MsgBox “j:printtest创建成功!“ End Sub,5.3 标准文件输入/输出,2、顺序文件的写操作 (2)Write # 语句 格式:Write # ,输出项列表 功能:将各输出项的值写入到指定的文件中。 说明: Write语句与Print语句的区别是: 1)Write语句在各输出项之间自动插入逗号 2)为字符串加双引号 3)在将最后一个字符写入文件后插入回车换行符,即Chr(13)+Chr(10)。,5.3 标准文件输入/输出,Private Sub Command2_Click() Open “j:writetest.txt“ For Output As #1 Write #1, “write # 语句测试“ Write #1, Write #1, “第一分区“; “第二分区 “ Write #1, “你好!“, 2 * 3, 2 + 3 Write #1, Spc(2); “输出两个空格“ Write #1, Tab(5); “从第五列开始输出“ Write #1, “行 1“ Write #1, 5; 6; -8 Close #1 MsgBox “j:writetest创建成功!“ End Sub,Print#语句输出与Write语句输出的区别: (1)Print#语句在输出项中,用逗号分隔输出项,可按分区格式输出;Write#语句用逗号分隔输出项,不按分区格式输出,而是在输出项之间用逗号分隔。对于Write语句,采用逗号分隔输出项还是用分号分隔输出项没有差别。 (2)Print#语句生成的数据文件,数据项之间没有逗号,而用Write#语句生成的数据文件,会在文本上自动添加双引号,数据项之间有逗号。,5.3 标准文件输入/输出,3、顺序文件的读写 (1)Input #语句 格式:Input # , 功能:从指定文件中读取数据并将其赋值给变量 说明:1)变量列表中的变量可为基本数据和数组元素,但不能是数组或对象变量 2)变量多于一个用逗号分隔 3)Input#语句一般与Write#语句配合使用。若数据文件用Write#写入,应使用Input#读取。,5.3 标准文件输入/输出,5.3 标准文件输入/输出,Private Sub Command1_Click() Dim A Open “ j:writetest.txt“ For input As #1 Do While Not EOF(1) Input #1, A Print A Loop Close #1 End Sub,3、顺序文件的读写 (2)Line Input #语句 格式: Line Input # , 功能:从指定文件中读取一行数据并将其赋值给字符串变量 说明:1)依次从文件中读取一行数据,直到回车或回车加换行为止 2)Line Input#语句一般与Print#语句配合使用。若数据文件用Print#写入,应使用Line Input#读取。,5.3 标准文件输入/输出,5.3 标准文件输入/输出,Private Sub Command1_Click() Dim A Open “F:d1.txt“ For input As #1 Do While Not EOF(1) Line Input #1, A Print A Loop Close #1 End Sub,3、顺序文件的读写 (3)Input函数 格式:Input ,* 功能:从指定文件中读取指定个数的字符 说明:函数Input返回所读出的所有字符,包括逗号、回车键、空白列、换行符、引号和前导空格等。,5.3 标准文件输入/输出,5.3.2 随机文件 可按照任意顺序读写的文件,每条纪录长度相同,具有不同的纪录号。读取数据时,只要指定纪录号,就可直接读取。为保证纪录长度相等,必须将字符串字段定义为定长字符串类型。 1、随机文件的打开与关闭 (1)打开随机文件 格式:Open For Random A

温馨提示

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

评论

0/150

提交评论