文件的概念及其使用方法是VB程序设计知识点梳理汇总_第1页
文件的概念及其使用方法是VB程序设计知识点梳理汇总_第2页
文件的概念及其使用方法是VB程序设计知识点梳理汇总_第3页
文件的概念及其使用方法是VB程序设计知识点梳理汇总_第4页
文件的概念及其使用方法是VB程序设计知识点梳理汇总_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

第7章文件类应用中,通常需要处理大量不同类型的数据信息,而这些数据信息常常需要独立存储在某种介质上(如磁盘等),以便需要时通过程序来加工处理,这种独立存储的数据集合就称为文件。在Windows应用程序中打开文件或保存文件时,通常需要打开一个对话框,用于选择文件所在的驱动器(盘)、文件夹(目录)、文件名。在VB中,使用盘驱动器列表框(DriveListBox)、目录路径列表框(DirListBox)以及文件列表框(FileListBox)这3种控件的组合,可以创建类1.盘驱动器列表框控件常用属性(1)Drive属性(字符串类型)值得注意的是:盘驱动器列表框中显示的驱动器名都是由系统自动生成的,用户只能通过(2)List属性(字符串数组)List数组的每一个元素中的字符串,为1个驱动器名,数组下标从0开始。(3)ListCount属性(正整数)若系统有驱动器a:、c:、d:、e:、f:(光驱),则驱动器列表框控件drivel的ListCount属性值为5,执行下列语句后在窗体上输出的结果为“a:c:d:e:f:”。Nexti%运行时,当单击驱动器列表框中某一驱动器图标时,该驱动器的名就赋值给控件的Drive例7-1在窗体上设计一个盘驱动器列表框Drivel、一个标签Label1。当程序当前驱动器为C盘;选择盘驱动器列表框中的盘符,在标签上显示相应的Label1.Caption="当前驱动器为:"+Drivel.DriveLabel1.Caption="当前驱动器为:"+Drivel.Drive目录路径列表框控件用于显示当前驱动器中文件夹(目录)列表。如图7-2所示。(1)Path属性(字符串类型)如果选中盘x的根目录,则Path属性为“x:\”;如果选中盘x的某一个子目录y(文件夹),图7-2文件夹(目录)列表运行时单击目录列表框中某一文件夹(目录)图标时,该目录被突出显示,表示被选中。(2)List属性(字符串数组)(3)ListCount属性(正整数)ListCount属性值为List数组中的元素个数,即所选目录之下1级目录的数量。Nexti%c:\ProgramFileMicrosoftVisualStudio\VB98\Setc:\ProgramFilelMicroc:\ProgramFile\Microsoc:\ProgramFilelMicrosoft该属性取值范围为-n~ListCount-1,当前目录所对应的ListIndex属性值为-1,当前目录的上1级目录所对应的ListIndex属性值为-2,其中的n反映了当前目录在目录层次中的深度。选当前目录下1级目录中的第3个目录为当前目录(文件夹)选当前目录下1级目录中的第1个目录为当前目录。选当前目录上1级目录为当前目录。选当前目录上2级目录为当前目录。如在图7-2中,假定当前所选文件夹是VB98:变,可以在事件过程Dirl_Click中写入语句“Dir1.Path=Dir1.List(Dir1.ListIndex)”,则可以在在窗体上建立目录路径列表框控件Dir1、三个标签控件(Labell、Label2、Label3)以及一程序启动时,设置初始当前目录为“C:WINDOWS”;程序运行后,通过鼠标双击Dir1中的列表选项,改变当前目录,同时在三个标签控件别显示当前目录、当前ListIndex和ListCount的值,在List1中显示当前目录的所有下一级目录的目录路径信息。程序的运行情况如图7-3所示。教研室工作C:MlyDocuments\图7-3双击“MyDocuments”文件夹后的显示Label2.Caption="ListIndex="+Str(Dirl.ListIndeLabel3.Caption="ListCount="+SNexti%Dir1.Path=Dir1.List(D="ListIndex="+Str(Dir1.="ListCount="+Str(Dirl.List1.AddItemDirl.List(I8)Nexti%1.文件列表框控件常用属性(1)Path属性(字符串类型)若在Form_Load事件中写入语句“File1.Path=“C:\Windows””,则窗体装入后File1显示文(2)Filename属性(字符串类型)用以设置或返回所选文件的文件名,不能在属性窗口中设置,运行时若在文件列表框中选择文件将改写Filename属性值。f$=Form1.File1.Path+Form1.File1.Fif$=Form¹.File1.Path+“\”+Form1.File1.F在第6章中介绍的通用对话框控件也有同名的FileName属性,请读者注意两者的区别。列表框所作选择可以起到调用通用(文件)对话框的作用。(3)Pattern属性(字符串类型)用以设置文件列表框中文件的显示模式,缺省值为“**”。与盘驱动器列表框和目录路径列表框不同的是:文件列表框能支持PathChange和当改变了文件列表框的文件显示模式,即Pattern属性值的改变将引发PatternC影像框Image1,运行时选择File1中所列的图片文件,则相应图片(1)界面设计,如图7-4所示。MicrosoftVisu-Dir1.Path=DrivelFilel.Path=Dirl.Path'File1IfRight(File1.Path,1)="\"ThenEndIfImage1.Picture=LoadPi程序运行的情况如图7-5所示。bmyEMS不能执行操作系统的内部命令及所有非执行文件(如文档),否则将显示出错信息。CallShell(<Filename或<变量名>=Shell(Filename,Windows_style)Windows_style参数用于规定当前窗口与被调用文件窗口的不同状态。其值为0、1、2、3、4、6的表达式。函数返回值在Windows9x中无意义,但必须书例7-4将例7-3工程生成为exe文件,保存在D:盘根目录下,并取名为Tupian,则可用以PrivateSub例7-5在窗体上添加通用对话框控件Commondialog1、单击命令按钮Command1,打开文x=Shell(CommonDialog1.File如图7-6b所示,关闭计算器窗口后,控制返回到VB应用程序界面。例7-6确认calc.exe的准确位置如“c:windows\calc.exe”(可以通过运行“开始”菜单的“查找”选项确认),下列过程打开该文件。ChDrive"c:"y=Shell("\windows\calc.exe",0)'省略盘符,指例7-7(先建立1个目录路径列表框以便观察)执行下列事件过程。MKdir"c:\aaa"'建立文件夹c:\aaa如上面的两条命令如交换次序,则出现错误,因为在建立文件夹bbb时,所指出的路径c:aaa例7-8(在运行例7-7程序的基础上)执行下列事件过程。PrivateSubCommand1_CRMdir"c:\aaa\bbb"'删除文RMDir"c:\aaa"'删除文件夹c:\aaa,如果与上1句交换位置将出错。如果要删除的文件夹不存在,或是该文件夹下面还有文件、文件夹存在,则该语句将产生例如,执行语句“CHdir“c:lvb6””,ChDir"\hts"'改变默认盘的当前目录为d:\hts”。例如,执行语句“FileCopy“d:htslvb_4.doc”,"a:\vb4.doc””,可将d:hts中的文件vb_4.doc(2)文件名中可使用通配符,以删除一批文件。如执行语句“Kill"d:Vhts\*.doc"”,则删除亦即移动)为d:bbb.dat。如果指定的目录、文件不存在,则该语句将产生错误信息。如果新文件名与原文件的路径10.返回文件最后1次修改的日期和时间的函数例如,执行语句“dt$=FileDateTime("d:\bbb.dat")”后,如dt$中的字符串为“00-5-23PM4:18:26”,表明该文件最后1次修改的日期和时间是2000年5月23日下午4点18分26秒。文件是数据信息在磁盘上的1种存储结构。计算机系统中的不同文件以不同的文件标识符区分,文件标识符即文件全名,包括存储路径、主名、扩展名3部分组成。·顺序文件在打开时必须指定对文件的操作方式(Input、Output、Append),打开后只能·顺序文件以Output方式打开后,总是从文件的开头写,使用这种方式打开一个已经存在·顺序文件以Input方式打开后,总是(1)ASCⅡ(字符、正文)文件:按字符的ASCⅡ码存储,每个字符占1个字节。3.文件的存取方式(1)顺序文件:必须在顺序访问文件中某个数据前(物理位置)的所有数据后,才可以访问(2)随机文件:可以直接访问文件中的任何1个数据。文件必须先打开,才可以对其进行访问。结束访问后应当关闭文件,应用程序终止运行时②Mode选项只能取下列关键字之一:ReadWrite:别的任务或进程不可读、写该文件。一起使用:n%=Freefile:Open"d:\user\a.txt"ForOutputAsn%(2)关闭文件结束访问文件后,应关闭该文件以保证其正确和完整,关闭文件使用Close语句。该语句关闭由通道号File_numb所指定的文件,若缺省[#]File_numb,则关闭所有用Open语句打开的文件。2.写顺序文件可以用Print#语句或Write#语句将数据写入到顺序文件。①表达式列表用逗号或分号间隔效果一样,都是在写入的数据间加入逗号作分隔符。②表达式列表末尾无分隔符,则输出回车、换行符到文件。③字符串表达式写入文件时字符串两端自动加双引号,其他非数值类型数据写入文件时两端加“#”号。例7-9用Write#语句写文件。Open"d:\aaa\a.dat"ForOutputAs#1,打开文件,做好写准备Write#1,’在文件中写入一空行Write#1,"abc","def";True,,不换行Close#1·关闭文件读者可以利用Windows附件中的写字板程序打开文件d:laaa\a.dat,观察文件的实际内容,如图7-7所示。“abc","def”,#TRUE#,#FALSE#用Print#语句写到文件的内容、格式,与Print语句输出到窗体上的内容与格式相类似。open"d:\aaa\b.dat"ForOut二回区二回区②日期、逻辑类型数据的两端以“#”号作为分隔符,与其他类型数据之间应有非空字符例如:用Input方式打开例7-9所建立的文件d:\aaa\a.dat,执行以下命令:程序将难以处理!例如下列形式的数据很难读到相应的变量中去。张三03/12/678976李四05/11/695769如果改成如下形式,则可以设计输入语句“Input#1,a$,d,i%j%”读取。其中,与变量aS对·如果文件中的数据是VB应用程序的输出结果,4.与文件读写有关的函数例7-11找出1000之内的素数写入文件d:aaa\su.dat。然后输入若干个数,通过在该文件单击Command1后创建存放素数的数据文件d:aaa\su.dat,然后使Command2有效而单击Command2,用输入对话框输入1个小于1000的正整数,判断是否素数,并在文本框'该事件过程在文件d:\aaa\su.dat中1行写入5个素数。Write#1,2,3,·写入2个素数2和3之间自动加逗号间隔。Ifi%Modjs=0ThenExitForNextj%Ifj8>Sqr(i8)ThenIfk%=5ThenWrite#1,i%'1行写入5个素数后换行EndIfEndIfCommand2.Enabled=Truek8=InputBox(“请输入1个小于1000的正整数”,"判断是否素数")Ifn8=k8ThenText1.Text=Str(k8)+”是素数!”Ifn8>=k8ThenExitDoPrivateSubCommand2.Enabled=(1)界面设计,如图7-9a所示。单击窗体打开“打开文件”对话框,选择文件(如d:abc.txt),在程序中用Input方式打开Form1.Caption="文件”&CommonDialog1.FileName&"字数统计"'用Input方式打开在“打开文件”对话框中所选择的文件OpenCommonDialog1.FileNameForInpuIfMid(S,is,1)<="9"AndMid(S,is,1)>="0"ThenElseIfUCase(Mid(S,is,1))<="Z"AndUCase(Mid(S,is,1))>="A"IfNexti%程序运行的情况如图7-9b所示。考虑到如果事先没有这样的文件存在,程序中设计了自动“生成数据文件”、“选择数据无论是选择数据文件,还是自动生成数据文件,此后进入窗体二,读入数据文件、排序后1.窗体一(确定数据文件)(1)界面设计,如图7-10a所示。请读者注意本例中驱动器列表框、目录列表框、文件列表框的用法,以及相关事件过程代码。他们之间实现了一定的关联:目录列表框显示所选驱动器的目录,文件列表框显示所选目录下的文件。录下的文件。●●生成数'flag为True表示选择数据文件、否则表示自动生成数据文件,'为使在窗体二中能够访问该变量,因此要声明为全局变量。'先锁定三个控件,因为要首先选择“选择数据文件”或“生成数据文件”。在其他三个控件的Enable属性全为False时,窗体一中只有两个单选按钮,运行时必有一个自动获得焦点。在第四章,已介绍了单选按钮,该控件的一个特性是:获得焦点时,执行该单选按钮的SetFocus事件、Click事件。如果为两个单选按钮编制了各自的click事件,由于其中一个自动获得焦点、执行Click事件过程,那么这种选择就没有意义了。由于以上原因,在此,我们只为单选按钮的鼠标双击事件编制事件过程。PrivateSubOption1_dblIfOption1.Value=TrueThenEndIfDir1.Path=DrivelL1:MsgBox"访问驱动器错误"单击目录列表框不能改变其Path属性,在本例中,需要双击目录列表框,该控件的Chang事件才会发生。可以在事件过程Dirl_Click中2.窗体二(排序)(1)界面设计,可参见图7-10b。属性为True、则添加到List2中的表项按字典序从小到大排放(如图7-10b),而不是按数值从小到大排放。因此,界面上还设计有“排序”命令按钮,单击该按钮则采用第2章中所介绍的排序存盘IfForml.flag=FalseThen'如果窗体1中选择了自动生成数据文件Open"e:\temp.dat"ForOutputAs#1在e:\新建文件temp.datFori%=1To20'生成20个随机数,写入文件并在List1中显示。'如果窗体1中选择了某个数据文件,则生成该文件全名f$。IfRight(Forml.Filel.Path,1)="\"ThenfS=Forml.Filel.Path+"\"+FoEndIfEndIfList2.AddItem(List1.LNextigForjs=i8+1ToList2.ListCount-1IfVal(List2.List(j%))<Val(List2.List(k%))Thenks=jSNextj%List2.List(k8)=ListNexti%Print#1,List2.List(Nextig画学生基本信息管理系统修改确认追加追加确认删除确认选择班级存盘退出'设置List1的各列表项,在选择班级之前锁定List1.List(0)="艺术设计991"List1.List(1)="艺术设计992"List1.List(2)="艺术设计993"List1.List(3)="艺术设计994"Command1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseCommand4.Enabled=FalseFilename="99"+Chr(Asc("0")+List1Text1.Text=List2.List(List2.ListInList2.List(List2.ListIndex)Text1.EnabledList2.RemoveItem(List2.LText1.Text=List1.Enabled=FalseText1.Enabled=FalseFori%=0ToList2.ListCNexti%Text1.ScrollBars=2设置文本框具有垂直滚动条②打开菜单编辑器,设置菜单项,如表7-1所示。菜单标题(Caption)索引(Index)文件(&F)主菜单项1...新建(&N)0子菜单项111.保存(&S2.另存为(&A)3.退出(&X)4编辑(&E)...剪切0子菜单项21..复制1..粘贴2③建立图片框控件Picture1,设置Picturel.Align=1。④在Picturel上画出名称为Command1的6个命令按钮所组成的控件数组。将每个数组元素的Caption属性都设置为空串;将每个数组元素的Style属性都设置为1,即设置为图形按钮;设置各个数组元素的Picture属性:分别加载new.bmp、open.bmp、save.bmp、cutbmp、copy

温馨提示

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

评论

0/150

提交评论