《《VB程序设计第五章》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《VB程序设计第五章》PPT课件.ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第5讲 文件处理应用程序设计教学要求1掌握文件读写的基本方法;2、掌握与文件处理相关的语句和函数的用法;3、理解文件系统控件的基本功能;4、了解文件管理器应用程序开发过程。5.1 文件管理器程序任务5.1.1 任务概述文件是指存储在外部介质上的数据的集合,是一种可以永久性存储数据的形式。操作系统以文件为单位管理数据,文件名是文件访问的标示。把数据写入文件或从文件中读取数据,计算机需要先根据文件名找到指定的文件,然后再执行读写操作。采用VB中提供的驱动器列表框、目录列表框和文件列表框三种控件可实现上述功能。在本章中我们将建立一个简单的文件管理器。5.1 文件管理器程序任务5.1.2 界面设计1、
2、创建工程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 删除文件
3、语法:Kill 说明:Kill支持统配符(*和?)例:Kill D:DataTest.txt Kill C:TEMP*.tmp5.2.4 拷贝文件语法:FileCopy ,说明:源文件和目标文件名是字符串表达式,可以包含驱动器、文件夹。不能对打开的文件执行复制操作。5.2 文件系统控件及相关语句5.2.5 文件重命名语法:Name As 说明:Name语句重新命名文件并将其移动到不同的目录或文件夹中。可跨驱动器移动文件,且只能重命名文件,不能创建新文件。Dim OldName,NewName As StringOldName=“C:mydiroldfile”NewName=“C:youdirN
4、ewfile”Name OldName As NewName5.2 文件系统控件及相关语句5.2.6 创建新目录语法:MkDir 说明:若没有指定驱动器,则在当前驱动器上创建目录。例:Mkdir “成绩单5.2.7 删除目录语法:RmDir 说明:在使用此命令前,应先使用Kill命令删除所有文件,否则会发生错误。例:RmDir“C:成绩单临时文件夹”5.2 文件系统控件及相关语句5.2.8 得到当前路径语法:CurDir 说明:若没有指定驱动器,或驱动器名为空,在返回当前驱动器的路径。返回值为Variant(String)。C盘的当前路径为C:Program FilesD盘的当前路径为D:Vi
5、sual Basic程序设计当前驱动器为C,则:Dim MyPath As StringMyPath=CurDir 返回C:Program FilesMyPath=CurDir(“C”)返回C:Program FilesMyPath=CurDir(“D”)返回D:Visual Basic程序设计5.2 文件系统控件及相关语句5.2.9 设置文件属性语法:SetAttr ,SetAttr“test.txt”,vbArechive+vbReadOnly常数值描述 vbNormal0 常规(默认值)vbReadOnly1 只读 vbHidden2 隐藏 vbSystem4 系统文件 vbDirect
6、ory16 目录或文件夹 vbArchive32 存档文件 vbAlias64 指定的文件名是别名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“隐藏文
7、件”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可以使指定的驱动器设置为当前驱动器。C
8、hDrive 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、文件列表框以列表方式显示当前目录下的所有文
9、件,文件列表框的三种属性:(1)Path属性:用于设置文件列表框中所示的完整路径:File1.Path=“C:Visual BasicStu”(2)Pattern属性:设置列表框中可以显示的文件类型,默认为*.*,表示所有文件:File1.Pattern=“*.txt”(3)FileName属性:设置或返回选定的文件名称,只在运行阶段可用。5.3 标准文件输入/输出5.3.1 顺序文件1、顺序文件的打开和关闭顺序文件采用记录结构,按次序一个接一个地排列记录,只提供第一个记录的存储位置。需要读取记录时,必须按顺序从第一条记录开始依次读出数据,直到找到所需记录为止。(1)打开顺序文件格式:Open
10、 For As#5.3 标准文件输入/输出说明:1)文件名是所要打开的文件的名称,其中包含完整的路径名称。2)模式是指打开文件的方式:Input:以读方式打开文件Output:以写方式打开文件,创建一个新的顺序文件,等待数据输出。若存在同名文件。则覆盖原有文件内容。Append:以追加方式打开文件。若文件不存在则创建新文件。5.3 标准文件输入/输出说明:3)文件号是一个1511之间的整数,同时被打开的每个文件的文件号不能相同。文件被打开后,文件号就代表该文件,通过文件号读写文件,直到文件被关闭。例:Open“A:D1.dat”For Input As#1以读方式打开A盘中的D1.dat文件O
11、pen“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)输出项可以是常数、变量或表达式,输出多于一项,中间用逗号或分号
12、分隔。2)输出项之间用分号分隔时,按紧凑格式输出到文件。若是字符串,则输出项之间无空格;数值型数据在整数前留一个前导空格,在负数前输出一个负号。5.3 标准文件输入/输出2、顺序文件的写操作3)输出项之间使用逗号分隔时,按分区格式输出到文件,10列为一个分区。4)在输出项中可使用spc(n)函数输出n个空格,使用Tab(n)函数指定其后的输出项从n列开始输出。5)Print#语句的末尾可以加分号、逗号或不加任何符号。加分号表示下一个Print#语句的输出项不换行,直接按紧凑格式输出;加逗号表示下一个Print#语句的输出项不换行,按分区格式输出;不使用任何符号时,下一个Print#语句的输出项
13、换行输出。5.3 标准文件输入/输出Private Sub Command1_Click()Open j:printtest.txt For Output As#1Print#1,Print#语句测试语句测试Print#1,Print#1,第一分区第一分区;第二分区第二分区Print#1,你好你好!,2*3,2+3Print#1,Spc(2);输出两个空格输出两个空格Print#1,Tab(5);从第五列开始输出从第五列开始输出Print#1,行行 1Print#1,5;6;-8Close#1MsgBox j:printtest创建成功创建成功!End Sub5.3 标准文件输入/输出2、顺序
14、文件的写操作(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#1Write#1,write#语句测试语句测试Write#1,Write#1,第一分区第一分区;第二分区第二分区 Write#1,你好你好!,2*3,2+
15、3Write#1,Spc(2);输出两个空格输出两个空格Write#1,Tab(5);从第五列开始输出从第五列开始输出Write#1,行行 1Write#1,5;6;-8Close#1MsgBox j:writetest创建成功创建成功!End SubPrint#语句输出与Write语句输出的区别:(1)Print#语句在输出项中,用逗号分隔输出项,可按分区格式输出;Write#语句用逗号分隔输出项,不按分区格式输出,而是在输出项之间用逗号分隔。对于Write语句,采用逗号分隔输出项还是用分号分隔输出项没有差别。(2)Print#语句生成的数据文件,数据项之间没有逗号,而用Write#语句生成
16、的数据文件,会在文本上自动添加双引号,数据项之间有逗号。5.3 标准文件输入/输出3、顺序文件的读写(1)Input#语句格式:Input#,功能:从指定文件中读取数据并将其赋值给变量说明:1)变量列表中的变量可为基本数据和数组元素,但不能是数组或对象变量2)变量多于一个用逗号分隔3)Input#语句一般与Write#语句配合使用。若数据文件用Write#写入,应使用Input#读取。5.3 标准文件输入/输出5.3 标准文件输入/输出Private Sub Command1_Click()Dim AOpen j:writetest.txt For input As#1Do While Not
17、 EOF(1)Input#1,A Print ALoopClose#1End Sub3、顺序文件的读写(2)Line Input#语句格式:Line Input#,功能:从指定文件中读取一行数据并将其赋值给字符串变量说明:1)依次从文件中读取一行数据,直到回车或回车加换行为止2)Line Input#语句一般与Print#语句配合使用。若数据文件用Print#写入,应使用Line Input#读取。5.3 标准文件输入/输出5.3 标准文件输入/输出Private Sub Command1_Click()Dim AOpen F:d1.txt For input As#1Do While Not
18、 EOF(1)Line Input#1,A Print ALoopClose#1End Sub3、顺序文件的读写(3)Input函数格式:Input ,*功能:从指定文件中读取指定个数的字符说明:函数Input返回所读出的所有字符,包括逗号、回车键、空白列、换行符、引号和前导空格等。5.3 标准文件输入/输出5.3.2 随机文件可按照任意顺序读写的文件,每条纪录长度相同,具有不同的纪录号。读取数据时,只要指定纪录号,就可直接读取。为保证纪录长度相等,必须将字符串字段定义为定长字符串类型。1、随机文件的打开与关闭(1)打开随机文件格式:Open For Random As#Len=纪录长度5.3
19、 标准文件输入/输出5.3.2 随机文件说明:1)文件名应包含完整路径2)纪录长度用于制定随机文件每条纪录的长度。默认为128Byte,可取032k,也可在程序中用Len函数获得纪录长度。3)随机文件打开后,既可从文件中读取数据,也可向文件中写入数据。如:Open“A:D3.txt”For Random As#1 Len=Len(Student)(2)关闭随机文件用Close语句。5.3 标准文件输入/输出5.3.2 随机文件2、随机文件的写操作格式:Put#,纪录号,功能:把变量中的数据写入指定文件中纪录号指定的位置。说明:1)纪录号为大于1的整数2)省略纪录号时,新纪录插入到当前纪录之后5.3 标准文件输入/输出5.3.2 随机文件3、随机文件的读操作格式:Get#,纪录号,功能:从指定文件中读取纪录号指定的纪录,并赋值给变量。说明:Get语句依次读取一条纪录后,文件纪录指针自动指向下一条纪录,纪录号加1。5.3 标准文件输入/输出5.3.3 二进制文件1、二进制文件的打开与关闭Open For Binary As#2、二进制文件的写操作Put#,位置,变量名将一个变量写入打开的文件。3、二进制文件的读操作Get#,位置,变量名Input(字节数,#)5.3 标准文件输入/输出实验更改密码登录程序