您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > VB教程 全套课件 vb-9
第九章文件(2学时)9.1文件系统控件9.2文件的读写9.3常用的文件操作语句和函数9.1驱动器、目录和文件列表框SubdrvDrive_Change()dirDirectory.Path=drvDrive.DriveEndSubSubdirDirectory_Change()filFile.Path=dirDirectory.PathEndSubSubForm_Load()Item=“所有文件(*.*)”cboType.AddItemItem+Space(20-Len(Item))+*.*Item=窗体文件(*.FRM)cboType.AddItemItem+Space(20-Len(Item))+*.FRMItem=位图文件(*.BMP)cboType.AddItemItem+Space(20-Len(Item))+*.BMPcboType.ListIndex=2EndSubSubcboType_Click()filFile.Pattern=Mid(cboType.Text,21)EndSubSubfilFile_Click()┆EndSubSubfilFile_DblClick()┆EndSub例9.1示例程序1.驱动器列表框Drive属性:[对象.]Drive[=drive]Change事件:重新设置Drive属性引发Change事件2.目录列表框Path属性:[对象.]Path[=pathname]Change事件:重新设置Path属性引发Change事件3.文件列表框Path属性:显示该路径下的文件。重新设置Path属性引发PathChange事件。Pattern属性:显示的文件类型。[对象.]Pattern[=value]重新设置Pattern属性引发PatternChange事件。例如:filFile.Pattern=“*.frm”,显示*.frm文件。FileName属性:[对象.]FileName[=pathname]引用时只返回文件名,相当于filFile.List(filFile.ListIndex),需用Path属性得到其路径;设置时可带路径。Click、DblClick事件:例如,单击输出文件名。例如,双击执行可执行程序。SubfilFile_Click()SubfilFile_DblClick()MsgBoxfilFile.FileNameChDir(dirDirectory.Path)’改变当前目录EndSubRetVal=Shell(filFile.FileName,1)’执行程序EndSub9.2文件的读写文件:存储在外部介质上数据的集合。按名存取1.记录由若干个相互关联的数据项组成。例如,由学生的学习成绩信息组成的记录:学号姓名数学成绩语文成绩物理成绩总分数据项2.文件及其种类文件是记录的集合顺序访问模式:顺序文件,记录可长可短随机访问模式:随机文件,记录的长度相同二进制访问模式:二进制文件(可认为记录长度为1)(1)顺序文件按顺序依次把记录写入文件;按顺序依次把记录读出来。记录1记录2……记录N文件结束标志文本文件:一行一条记录,记录可长可短,以“换行”字符为分隔符号。(2)随机文件随机文件可以直接访问文件中的任意一个记录。记录长度相同根据记录号访问#1记录1#2记录2……#N记录N(3)二进制文件直接把二进制码存放在文件中。1.打开文件Open“文件名”[For模式]As[#]文件号[Len=记录长度](1)模式OUTPUT:写操作INPUT:读操作APPEND:追加到文件未尾(2)文件号1~511,可以用FreeFile函数获得下一个可利用的文件号。(3)记录长度小于或等于32767的整数,它指定数据缓冲区的大小。例如,打开C:\VB\SCORE,供写入数据,指定文件号为#1。OPENC:\VB\SCOREFOROUTPUTAS#1一、顺序访问模式打开文件读出或写入关闭文件2.写入命令Print#文件号,[输出列表]保存文本框假定文本框的名称为txtTest,文件名为TEST.DAT。方法1:把整个文本框的内容一次性地写入文件。OpenTEST.DATForOutputAs#1Print#1,txtTest.TextClose#1方法2:把整个文本框的内容一个字符一个字符地写入文件。OpenTEST.DATForOutputAs#1Fori=1Tolen(txtTest.Text)Print#1,Mid(txtTest.Text,i,1);NextiClose#1Write#文件号,[输出列表]紧凑格式。数据项之间插入“,”,并加上双引号。例如,命令:Write#1,One,Two,123内容:One,Two,1233.关闭文件Close[[#]文件号][,[#]文件号]...例如,Close#1,#2,#34.读顺序文件INPUT#文件号,变量列表把读出的每个数据项分别存放到所对应的变量。LINEINPUT#文件号,字符串变量读一行到变量中,主要用来读取文本文件。INPUT$(读取字符数,#文件号)随意读取字符5.函数LOF(文件号):返回文件的长度(总字节数)。EOF(文件号):返回读写位置。文件未尾时,EOF函数为True,否则为False。读文本文件到文本框(共三种方法)假定文本框名称为txtTest,文件名为MYFILE.TXT。方法1:一行一行读txtTest.Text=OpenMYFILE.TXTForInputAs#1DoWhileNotEOF(1)LineInput#1,InputDatatxtTest.Text=txtTest.Text+InputData+vbCrLfLoopClose#1方法2:一次性读txtTest.Text=OpenMYFILE.TXTForInputAs#1txtTest.Text=Input(LOF(1),1)Close#1方法3:一个个字符读DimInputDataasString*1txtTest.Text=OpenMYFILE.TXTForInputAs#1DoWhileNotEOF(1)InputData=Input(1,#1)txtTest.Text=txtTest.Text+InputDataLoopClose#1例9.3文件加密程序SubcmdOpen_Click()CommonDialog1.Action=1txtSource.Text=OpenCommonDialog1.FileNameForInputAs#1DoWhileNotEOF(1)LineInput#1,InputDatatxtSource.Text=txtSource.Text+InputData+vbCrLfLoopClose#1EndSubSubcmdSave_Click()CommonDialog1.Action=2OpenCommonDialog1.FileNameForOutputAs#1Print#1,txtTarget.TextClose#1EndSubtxtTargettxtSource参阅例3.26二、随机文件1.打开Open文件名ForRandomAs#文件号[Len=记录长度]2.写操作Put[#]文件号,[记录号],变量名将一个记录变量的内容写到指定的记录位置处。忽略记录号,则表示在当前记录后的位置插入一条记录。3.读操作Get[#]文件号,[记录号],变量名忽略记录号,则读出当前记录后的那一条记录。例9.4学生信息管理程序。追加记录(Command1):将一个学生的信息作为一条记录添加到随机文件末尾。显示记录(cmdDisplay):显示在右边文本框(text4)中指定的记录。1.打开Open文件名ForBinaryAs#文件号2.写操作Put[#]文件号,[位置],变量名写入长度等于变量长度的数据。3.读操作GET[#]文件号,[位置],变量名从指定位置开始读出长度等于变量长度的数据存入变量中,数据读出后移动变量长度位置,如果忽略位置,则表示从文件指针所指的位置开始读出数据,数据读出后移动变量长度位置。三、二进制文件例9.5文件复制DimcharAsByteDimFileNum1,FileNum2asIntegerFileNum1=FreeFile'打开源文件OpenC:\STUDENT.DATForBinaryAs#FileNum1FileNum2=FreeFile'打开目标文件OpenC:\STUDENT.BAKForBinaryAs#FileNum2DoWhileNotEOF(FileNum1)'从源文件读出一个字节Get#1,,char'将一个字节写入目标文件Put#2,,charLoopClose#FileNum1Close#FileNum29.3常用的文件操作语句和函数1.FileCopy语句格式:FileCopysource,destination功能:复制一个文件。说明:FileCopy语句不能复制一个已打开的文件。2.Kill语句格式:Killpathname功能:删除文件。说明:pathname中可以使用统配符“*”和“?”。例如:Kill*.TXT3.Name语句格式:NameoldpathnameAsnewpathname功能:重新命名一个文件或目录。说明:(1)Name具有移动文件的功能。(2)不能使用统配符“*”和“?”,不能对一个已打开的文件上使用Name语句。4.ChDrive语句格式:ChDrivedrive功能:改变当前驱动器。说明:如果drive为“”,则当前驱动器将不会改变;如果drive中有多个字符,则ChDrive只会使用首字母。5.MkDir语句格式:MkDirpath功能:创建一个新的目录。6.ChDir语句格式:ChDirpath功能:改变当前目录。例如:ChDirD:\TMP7.RmDir语句格式:RmDirpath功能:删除一个存在的目录。说明:只能删除空目录。8.CurDir函数格式:CurDir[(drive)]功能:利用CurDir函数可以确定任何一个驱动器的当前目录。说明:drive为“”,则CurDir返回当前驱动器的当前目录。例9.6利用ChDrive和ChDir语句改写例9.1中的File1_DblClick()事件过程。SubFile1_DblClick()ChDriveDrive1.Drive'设置缺省驱动器ChDirFile1.Path'设置缺省目录RetVal=Shell(File1.FileName,1)EndSub例9.7为例9.1添加事件过程File1_MouseDown(),使之支持Del键,即按下Del键删除选定的文件。SubFile1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=vbKeyDeleteThenChDriveDrive1.DriveChDirFile1.PathKillFile1.FileNameFile1.Refresh'文件删除后更新文件列表框EndIfEndSub
本文标题:VB教程 全套课件 vb-9
链接地址:https://www.777doc.com/doc-3264671 .html