您好,欢迎访问三七文档
第7章文件通过前几章的学习,使我们了解,利用VB可以编写一些用于科学计算、图形处理等方面的程序。不仅如此,VB还广泛地应用于编制如人事、财务、生产、教学等各方面的管理程序,在这类应用中,通常需要处理大量不同类型的数据信息,而这些数据信息常常需要独立存储在某种介质上(如磁盘等),以便需要时通过程序来加工处理,这种独立存储的数据集合就称为文件。因此,掌握文件的概念及其使用方法是VB程序设计的重要内容之一。7.1与文件操作有关的控件在Windows应用程序中打开文件或保存文件时,通常需要打开一个对话框,用于选择文件所在的驱动器(盘)、文件夹(目录)、文件名。在VB中,使用盘驱动器列表框(DriveListBox)、目录路径列表框(DirListBox)以及文件列表框(FileListBox)这3种控件的组合,可以创建类似Windows资源管理器的文件操作对话框,用于选择文件。7.1.1盘驱动器列表框控件盘驱动器列表框控件用于显示驱动器列表,工具箱中该控件图标为。该控件缺省的名称为:Drive1、Drive2、……⒈盘驱动器列表框控件常用属性⑴Drive属性(字符串类型)用来设置当前驱动器或返回所选择的驱动器名。Drive属性只能在程序运行时赋值,而不能通过属性窗口设置。为驱动器列表框的Drive属性赋值的语句格式为:盘驱动器列表框名.Drive[=驱动器名]格式中的“驱动器名”为指定的驱动器,也就是说使该驱动器成为当前驱动器;如果省略,则不改变当前驱动器。如果所指定的驱动器在系统中不存在,则产生错误。程序运行时若选择驱动器,则Drive属性值改写为所选择的驱动器名。如运行时单击驱动器列表框控件drive1中D:盘图标,则drive1.drive的值为d:。值得注意的是:盘驱动器列表框中显示的驱动器名都是由系统自动生成的,用户只能通过列表框选择使用,不可以对Drive控件使用AddItem、RemoveItem等方法添加或删除列表项。⑵List属性(字符串数组)List数组的每一个元素中的字符串,为1个驱动器名,数组下标从0开始。⑶ListCount属性(正整数)ListCount属性值表示系统中盘驱动器的个数。第7章文件197若系统有驱动器a:、c:、d:、e:、f:(光驱),则驱动器列表框控件drive1的ListCount属性值为5,执行下列语句后在窗体上输出的结果为“a:c:d:e:f:”。Fori%=0ToDrive1.ListCount-1PrintDrive1.List(i%);Nexti%⒉盘驱动器列表框控件常用事件运行时,当单击驱动器列表框中某一驱动器图标时,该驱动器的名就赋值给控件的Drive属性,同时引发Change事件。例7-1在窗体上设计一个盘驱动器列表框Drive1、一个标签Label1。当程序启动时,设置当前驱动器为C盘;选择盘驱动器列表框中的盘符,在标签上显示相应的当前驱动器信息。在窗体的Load事件中设置Drive属性的初值、编制事件过程Drive1_Change如下:PrivateSubForm_Load()Drive1.Drive=c:Label1.Caption=当前驱动器为:+Drive1.DriveEndSubPrivateSubDrive1_Change()Label1.Caption=当前驱动器为:+Drive1.DriveEndSub界面设计和程序运行的情况分别如图7-1a和图7-1b所示。图7-1a例7-1之界面设计图7-1b例7-1之运行情况7.1.2目录路径列表框控件目录路径列表框控件在工具箱中的图标为。目录路径列表框控件用于显示当前驱动器中文件夹(目录)列表。如图7-2所示。其中,突出显示的为当前目录。目录路径列表框控件缺省的控件名称为:Dir1、Dir2、……⒈目录路径列表框控件常用属性⑴Path属性(字符串类型)Path属性值为当前目录或所选择的目录名。VisualBasic6.0程序设计教程198如果选中盘x的根目录,则Path属性为x:\;如果选中盘x的某一个子目录y(文件夹),则Path属性为x:\y。请注意,Path属性值的最后一个字符是否为\,取决于是否选中根目录。同Drive属性一样,Path属性只能用程序代码设置,而不能在设计时通过属性窗口设置。为目录列表框的Path属性赋值的语句格式为:目录路径列表框名.Path[=目录路径名]图7-2文件夹(目录)列表运行时单击目录列表框中某一文件夹(目录)图标时,该目录被突出显示,表示被选中。选中目录则改变目录列表框的ListIndex属性,但是没有改变其Path属性,若要改变Path属性值为所选中的目录路径,应当执行语句:目录路径列表框名.Path=目录路径列表框名.List(目录路径列表框名.ListIndex)⑵List属性(字符串数组)List(0)、List(1)、...、List(ListCount-1)中的字符串为目录路径列表框中所选目录下所有的目录名,该数组由系统自动生成。⑶ListCount属性(正整数)ListCount属性值为List数组中的元素个数,即所选目录之下1级目录的数量。如在图7-2中,若VB98目录下的子目录已全部显示,则Dir1.ListCount属性值为5。若执行语句:Fori%=0ToDir1.ListCount-1PrintDir1.List(i%)Nexti%窗体上输出结果为:c:\ProgramFile\MicrosoftVisualStudio\VB98\Setupc:\ProgramFile\MicrosoftVisualStudio\VB98\Templatec:\ProgramFile\MicrosoftVisualStudio\VB98\Tsqlc:\ProgramFile\MicrosoftVisualStudio\VB98\Wizardsc:\ProgramFile\MicrosoftVisualStudio\VB98\新文件夹⑷ListIndex属性(整数)该属性取值范围为-n~ListCount-1,当前目录所对应的ListIndex属性值为-1,当前目录的上1级目录所对应的ListIndex属性值为-2,其中的n反映了当前目录在目录层次中的深度。Path属性值也可以通过在事件过程的程序代码中重新定义Dir控件的ListIndex属性来选择设置:第7章文件199Dir1.ListIndex=2选当前目录下1级目录中的第3个目录为当前目录(文件夹)Dir1.ListIndex=0选当前目录下1级目录中的第1个目录为当前目录。Dir1.ListIndex=-2选当前目录上1级目录为当前目录。Dir1.ListIndex=-3选当前目录上2级目录为当前目录。若要改变的当前目录不存在,则显示出错信息。如在图7-2中,假定当前所选文件夹是VB98:执行语句“Dir1.ListIndex=2”后文件夹Tsql被突出显示;执行语句“Dir1.ListIndex=0”后文件夹Setup被突出显示;执行语句“Dir1.ListIndex=-3”后文件夹ProgramFiles被突出显示,等等。⒉目录路径列表框控件常用事件⑴Change事件每次重新设置或选择改变目录路径列表框的Path属性时,都将引发Change事件。运行时双击目录路径列表框的列表选项,可改变Path属性值为当前目录名,并执行Change事件。⑵Click事件单击选中目录路径列表框控件Dir1的某个目录名,则选中该目录,但Dir1.Path属性没有改变,可以在事件过程Dir1_Click中写入语句“Dir1.Path=Dir1.List(Dir1.ListIndex)”,则可以在选择目录的同时改变Dir1.Path属性为所选目录的路径。在窗体的Load事件中可以设置Path属性的初值。例7-2目录路径列表框示例。⑴界面设计:在窗体上建立目录路径列表框控件Dir1、三个标签控件(Label1、Label2、Label3)以及一个列表框控件List1。程序启动时,设置初始当前目录为C:\WINDOWS;程序运行后,通过鼠标双击Dir1中的列表选项,改变当前目录,同时在三个标签控件上分别显示当前目录、当前ListIndex和ListCount的值,在List1中显示当前目录的所有下一级目录的目录路径信息。程序的运行情况如图7-3所示。图7-3双击“MyDocuments”文件夹后的显示VisualBasic6.0程序设计教程200⑵过程设计编写Form_Load和Dir1_Change事件过程如下:PrivateSubForm_Load()'设置Dir1控件的初始路径Dir1.Path=C:\WINDOWSEndSub'双击控件Dir1时执行下列事件过程Dir1_ChangePrivateSubDir1_Change()Label1.Caption=当前目录:+Dir1.PathLabel2.Caption=ListIndex=+Str(Dir1.ListIndex)Label3.Caption=ListCount=+Str(Dir1.ListCount)List1.ClearFori%=0ToDir1.ListCount-1List1.AddItemDir1.List(i%)Nexti%EndSub在双击Dir1前,目录列表框中突出显示的是C:\WINDOWS目录;双击“MyDocuments”文件夹后,所选目录和Dir1.Path均改变为“c:\MyDocuments”。将下列Click事件过程与上述过程Dir1_Change相比较,可知要实现同样的功能,其中的语句“Dir1.Path=Dir1.List(Dir1.ListIndex)”是必不可少的。'单击控件Dir1时执行该事件过程PrivateSubDir1_Click()Dir1.Path=Dir1.List(Dir1.ListIndex)Label1.Caption=当前目录:+Dir1.PathLabel2.Caption=ListIndex=+Str(Dir1.ListIndex)Label3.Caption=ListCount=+Str(Dir1.ListCount)List1.ClearFori%=0ToDir1.ListCount-1List1.AddItemDir1.List(I%)Nexti%EndSub在实际应用中,目录路径列表框Dir1与盘驱动器列表框Drive1有着紧密的关系。一般情况下,改变盘驱动器列表框中的驱动器名后,目录路径列表框中的目录也要随之改变为该驱动器上的目录。要实现这样的同步变化,可以在盘驱动器列表框的Change事件中设置如下命令:Dir1.Path=Drive1.Drive将用户在盘驱动器列表框中选择的Drive属性,改写目录列表框中的Path属性,使目录列表框中显示所选驱动器下的目录。第7章文件2017.1.3文件列表框控件文件列表框控件用于显示当前目录中的文件列表,该控件图标为。文件列表框控件缺省的控件名称为:File1、File2、……⒈文件列表框控件常用属性⑴Path属性(字符串类型)同目录路径列表框的Path属性一样,用以设置当前文件列表框内所显示文件的存储路径。仅在运行时读写,不能在属性窗口中设置。文件列表框总是显示Path所指示的文件夹中的文件。若在Form_Load事件中写入语句“File1.Path=C:\Windows”,则窗体装入后File1显示文件夹C:\Windows中的文件列表。⑵Filename属性(字符串类型)用以设置或返回所选文件的文件名,不能在属性窗口中设置,运行时若在文件列表框中选择文件将改写Filename属性值。所选文件的全名f$为:IfRight(File1.Path,1)=\Thenf$=Form1.File1.Path+Form1.File1.FileNameElsef$=Form1.File1.Path+\+Form1.File
本文标题:VB电子教材07
链接地址:https://www.777doc.com/doc-62405 .html