VB教程第8章教案.ppt_第1页
VB教程第8章教案.ppt_第2页
VB教程第8章教案.ppt_第3页
VB教程第8章教案.ppt_第4页
VB教程第8章教案.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

第8章,数据文件与文件管理,文件是指存放在外存储器(如磁盘)上的信息集合两大类文件:程序文件和数据文件可以将应用程序所处理的数据以文件的形式保存起来本章主要内容,第8章数据文件与文件管理,数据文件概述,数据文件,文件系统控件,文件基本操作,文件系统对象(FSO),退出,8.1.1数据文件的基本结构1.数据文件的结构数据文件由记录组成,记录由字段组成,字段由字符组成,8.1数据文件,(1)顺序文件:文本文件。文件中的记录按顺序一个接一个地排列。只能按记录的先后顺序进行存取。(2)随机文件:随机文件的每一个记录都有固定的长度,每一个记录都有记录号,这种文件的特点是允许用户存取文件中任一个记录。可以同时进行读或写操作存入和读出速度较快,数据容易更新(3)二进制文件:可理解为长度为1的特殊的随机文件,2.文件类型,按记录顺序进行存取操作,允许存/取任一个记录如存入记录3,再读取记录2,(1)打开(或新建)文件(2)进行读、写操作系统设置文件指针,用来记住当前读写的位置(3)关闭文件,3.文件处理的一般步骤,1.打开文件(Open)Open文件名For模式Access存取类型锁定As#文件号Len=记录长度说明:模式用于指定文件访问的方式,包括:Append从文件末尾添加Binary二进制文件Input顺序输入Output顺序输出Random随机存取方式文件号(或称文件缓冲区):1511的整数长度Len:用来指定每个记录的长度(字节数)示例:Opend:cj1.datForOutputAs#12.关闭文件(Close)打开的文件使用完后必须关闭。关闭文件的语句格式:Close#文件号1,#文件号2示例:Close#1,4文件的打开和关闭,1.顺序文件的写入操作以Output或Append方式打开文件使用Write#语句或Print#语句将数据(一个不定长记录)写入文件中2.顺序文件的读出操作以Input方式打开文件采用Input#或LineInput#语句从文件中读出数据,8.1.2顺序文件,格式:Write#文件号,表达式表Input#文件号,变量名表,把150的50个整数,以及这些数中能被7整除的数分别存入两个文件中,文件名为num1和num2,文件存放在VB缺省文件夹下PrivateSubForm_Load()Opennum1.txtForOutputAs#1Opennum2.txtForOutputAs#2Fori=1To50Write#1,iIfiMod7=0ThenWrite#2,iNextiClose#1,#2UnloadMeEndSub说明:num1.txt文件中一共写入50个记录,而num2.txt文件只写入其中能被7整除的若干个记录,例8.1把150各数及能被7整除的数分别存入两个文件中,例8.1,已知文件“num2.txt”中存放一批能被7整除的数(见例8.1),现要求把这些数显示出来。每行显示4个数。PrivateSubForm_Load()ShowOpennum2.txtForInputAs#1DoWhileNotEOF(1)文件未结束时,循环Input#1,xPrintxLoopClose#1EndSub,例8.2从文件“num2.txt”中读取数据,例8.2,随机文件中每一个记录定长,并设置记录号(从1开始)。存取记录时,只要说明所需记录的编号,系统就以此算出记录所在位置(1)使用TypeEndType语句定义一个记录类型,该类型包括多个数据项,并与文件中记录应包括的域一致。(2)指定Random类型打开文件,记录定长,打开文件后,就可以存或取任一个记录。(3)分别通过Get和Put语句,并指定记录号进行读一个记录或存一个记录,8.1.3随机文件,格式:Get#文件号,记录号,变量Put#文件号,记录号,变量,例8.5建立一个随机文件,文件中包含10个记录,每个记录由一个数(1至10)的平方、立方和开方根三个数值组成,以该数作为记录号。存入全部记录后,再读出其中3个记录。(1)通过Type.EndType语句定义记录类型:PrivateTypeNumval定义一个Numval类型的变量nvSqureAsIntegerCubeAsLongSqrootAsSingleEndTypeDimnvAsNumval定义一个Numval类型的变量nv(2)利用某一过程(本例采用事件过程Form_Load)来完成该随机文件的存取操作,程序代码如下:,例8.5,PrivateSubForm_Load()DimnvAsnumval定义一个numval类型的变量nu写入记录程序段Opendata1.datForRandomAs#1Len=Len(nv)Fori=1To10nv.squre=i*inv.cube=i*i*inv.sqroot=Sqr(i)Put#1,i,nvNextiClose#1读出记录程序段ShowOpendata1.dat“ForRandomAs#1Len=Len(nv)Fori=2To10Step4只读出3个记录Get#1,i,nvPrint第;i;号记录:,nv.squre,nv.cube,nv.sqrootNextiClose#1EndSub,运行结果:第2号记录481.414214第6号记录362162.44949第10号记录10010003.162278,二进制文件的存取方式与随机文件存取方式类似,读写语句也是Get和Put,区别在于二进制文件的存取单位是字节,而随机文件的存取单位是记录。与随机文件一样,二进制文件一旦打开,就可以同时进行读写。例8.6把两个字符串写入二进制文件“biny.dat”,从位置50起写入第一个字符串“VisualBasic”,从位置100起写入第二个字符串“程序设计教程”。Openbiny.datForBinaryAs#1txt1=VisualBasictxt2=程序设计教程Put#1,50,txt1Put#1,100,txt2Close#1,8.1.4二进制文件,可以在应用程序中很方便地对文件和文件夹进行操作(1)建立文件夹语句(MrDir):MkDir路径文件夹名示例:MkDirD:VBTemp(2)改变当前驱动器(ChDrive):(3)改变当前文件夹语句(ChDir):ChDir路径示例:ChDirD:VBDat(4)删除文件夹语句(RmDir)(5)删除文件语句(Kill)(6)拷贝文件语句(FileCopy)(7)文件的改名和移动(Name)(8)文件查找函数(Dir),8.2文件基本操作,在“我的文档”(C:MyDocuments)文件夹下创建一个新文件夹“mydir”,然后复制文件“C:MyDocumentscj2.txt”到新文件夹下,复制生成的文件名称由用户指定PrivateSubForm_Load()ShowPrint正在进行文件操作MkDirc:mydocumentsmydirfname=InputBox(请输入新文件名,更改文件名)fname=c:mydocumentsmydir+fname+.txtFileCopyc:mydocumentscj2.txt,fnamePrint已完成要求的操作EndSub,例8.7文件操作示例,例8.7,(9)调用应用程序格式:Shell(命令字符串,窗口类型)功能:调用指定应用程序示例:x=Shell(C:WindowsExplorer.exe,1)执行“C:Windows”文件夹下的应用程序Explorer.exe,并显示该程序窗口,文件系统对象(FSO,FileSystemObject)模型是VB6.0的新增功能,用于对文件系统进行管理。它通过一种基于对象的方式,使用户在编程时可以通过这些对象提供的属性和方法来处理文件和文件夹。8.3.1FSO对象模型FSO对象模型提供了一组对文件系统的驱动器、文件夹和文件进行管理的对象,其主要对象有:Drive对象Folder对象Files对象FileSystemObject对象TextStream对象,8.3文件系统对象(FSO),使用FSO对象模型编程的主要步骤:创建一个FileSystemObject对象;使用适当的方法生成用于管理的对象(如Files、Folder);访问对象的属性,以获取文件系统的信息或进行相关操作。(1)创建FSO对象FSO对象模型包含在一个称为Scripting的类型库中,此类型库位于Sctrun.Dll文件中。先要引用此文件创建FileSystemObject对象主要有两种方法:使用New关键字,将一个变量声明为FileSystemObject对象,例如:DimfsoAsNewFileSystemObject使用CreateObject函数创建一个FileSystemObject对象,例如:Setfso=CreateObject(scripting.filesystemobject),(2)FSO对象方法完成了FSO对象模型的创建之后,就可以利用创建的FSO对象模型的方法访问各个对象的属性来获取所需信息或进行相关操作了。例如,要访问D盘根文件夹下已有文件myfile0.txt,可以使用如下代码:DimfsoAsNewFileSystemObject,filAsFileSetfil=fso.GetFile(“D:myfile0.txt”)(3)访问对象的属性使用Get方法之后,就可以访问对象的属性。例如,要显示一个文件的所占磁盘空间大小,可以使用如下代码:DimfsoAsNewFileSystemObject,filAsFileSetfil=fso.GetFile(“D:myfile0.txt”)Print“文件所占磁盘空间”;fil.size,1.管理驱动器2.管理文件夹3.管理文件例8.8设计一个试题发放的小程序,用于给“D:考堂”文件夹下的指定学号文件夹中发放文件“试题.mdb”,然后设置该文件的属性。具体要求如下:(1)检测“D:考堂”文件夹下的学号“06031001”“060310099”范围内哪些学号文件夹存在,若存在,则按(2)发放文件“试题.mdb”。(2)对于已存在的学号文件夹,检测该文件夹下是否存在文件“试题.mdb”,若不存在,则将当前文件夹下的“试题.mdb”文件复制到该学号文件夹下;若已存在,则先删除原有的“试题.mdb”文件后再复制文件。(3)将复制到各个学号文件夹下的“试题.mdb”文件属性设置为“系统”和“隐藏”。,8.3.2使用FSO对象管理文件,DimfsoAsNewFileSystemObject创建一个FileSystemObject对象DimfilAsFile将Fil声明为File对象类型exdir=D:考堂Fork=6031001To6031099数值范围xhdir=exdir+“0”+Trim(Str(k)学号文件夹名(含路径)Iffso.FolderExists(xhdir)Then判断学号文件夹是否存在xhfile=xhdir+试题.mdbIffso.FileExists(xhfile)Then判断学号文件夹下是否存在文件试题.mdbfso.DeleteFilexhfile删除原有文件EndIffso.CopyFile试题.mdb,xhfile将试题.mdb

温馨提示

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

评论

0/150

提交评论