论坛: 编程破解 标题: Visual Basic文件操作 复制本贴地址    
作者: ypy [ypy]    见习版主   登录
以下是我以前自学Visual Basic时为学习方便自己归纳打印的稿子,发上来希望对刚学习Visual Basic的网友有所帮助。:)

                   Visual Basic 文件操作
用InputBox语句从键盘上输入大量的数据是极不方便的。VB提供了从磁盘、磁带等外部存储器上进行数据输入输出的功能。存储在这些外部设备上的数据是由文件构成的。通过直接处理文件,应用程序可以极其方便地创建、复制、存储大量数据,一次可以访问多组数据,还可以与其他应用程序共享数据。
1) 文件管理控件
VB提供了驱动器列表框(DriveListBox)、目录列表框(DirListBox)和文件列表框(FileListBox)三个文件管理控件。通常将它们组合起来使用,创建与文件操作有关的自定义对话框,从而非常方便地查看系统的磁盘、目录和文件的信息。
1. 驱动器列表框
驱动器列表框是一个下来式列表框。缺省状态时,顶端突出显示用户系统当前驱动器名称。
<1>常用属性
1) Name属性
缺省时,Name属性值为“Drive1”
2) Drive属性
Drive属性是在程序运行时所使用的属性,用于返回用户在驱动器列表框中选取的驱动器。在应用程序中,可以通过赋值语句改变Drive属性值,从而指定出现在列表框顶端的驱动器。例如,假定驱动器列表框为“Drive1”,可以用下面语句改变驱动器列表框的Drive属性值:
Drive1。Drive = “C:\”
从驱动器列表框中选择驱动器并不能自动地改变当前的工作驱动器;但是可以将驱动器列表框的Drive属性,作为ChDrive语句的操作数在操作系统级改变工作驱动器:
        ChDrive Drive1. Drive
<2>常用事件
Change事件是驱动器列表框中最常用的事件。可在驱动器列控件的Change事件过程中使用Drive属性来更新目录列表框中显示的目录,以保证被显示的目录总是当前驱动器下的目录。
<3>常用语句
ChDrive语句:
功能:改变当前工作驱动器。
格式:
            ChDrive Drive
    Drive参数是一个字符串形的参数,它是系统的有效磁盘驱动器名。如果它是一个空字符串,则表示不改变当前工作驱动器;如果该参数是一多字符的字符串,语句仅取第一字符作为语句参数。使用该语句不会改变Drive的属性值,不会引发驱动器列表框的Change事件的发生,也不会改变列表框顶端显示的内容,而仅在操作系统级改变当前工作驱动器。
    例:
            ChDrive “D”



2. 目录列表框
<1>常用属性
1)Name属性
   缺省时,Name属性为“Dir1”
2) Path属性
Path属性用来设置和返回目录列表框中的当前目录。Path属性只能在程序代码中设置,即它是运行时属性,不能在属性窗口中设置。
        <目录列表框名>. Path = 路径
例:
        Dir1.Path = “C:\Program Files\Devstudio”
单击目录列表框中的某一目录项时,该目录项就被突出显示。但是此次操作并没有改变Path属性的值。而双击目录列表框中某一项时,则该目录项的路径百赋给了Path属性,这个目录就变成当前目录。目录列表框中的显示内容也就随之发生变化。
在编写Drive1_Change事件过程时,只须将语句
    Dir1.Path = Drive1.Drive
   添加到程序中,就可以在驱动器列表框和目录列表框之间实现同步变化。
<2>常用事件
Change事件是目录列表框控件最常用的事件之一。当用户双击目录列表框中的目录项,或在程序代码中通过赋值语句改变Path属性值,均会发生Change事件。
<3>常用命令
   ChDir语句
   功能:设置当前工作目录
   语句格式:
           ChDir 路径
   说明:路径是一个字符串型表达式,将当前目录设置为它所指定的目录。
   例:    ChDir “C:\Windows”
   将目录列表框中的当前目录设置成当前工作目录语句:
           ChDir Dir1.Path
3. 文件列表框
    文件列表框在目录列表框控件的Change事件中被更新,而目录列表框是当用户在目录列表框中选取某个目录项或在驱动器列表框中选取新的驱动器时被更新的。
<1>常用属性
1) Name属性
缺省时,Name属性值为“File1”。
2) Path属性
文件列表框的Path属性用来设置和返回文件列表框中所显示文件的路径,是运行时属性,在程序代码中可以通过下面的语句重新设置Path属性的值。
例如:
        File1.Path = 路径

        File1.Path = Dir1.Path
一旦文件列表框控件的Path属性发生改变时,就会引发文件列表框控件的PathChange事件。文件列表框中内容被更新,显示由Path属性指定目录中的文件。

3) Pattern属性
Pattern属性用来设置在程序运行时文件列表框要显示的某一种类的文件。该属性可以在设计阶段用属性窗口设置,也可以通过程序代码设置。缺省值为*.*。
   在程序代码中设置Pattren属性的格式为:
           [窗体.] <文件列表框名>. Pattern = 属性值 [,属性值…]
   省略“窗体”,则指的是当前窗体上的文件列表框。
   例如:
           File1.Pattern = “*.EXE”
      VB支持?通配符。例如,若给Pattren属性指定的值为???.EXE,则在文件列表框中显示所有的文件名中包含任意三个字符且扩展名为.EXE的文件。
      当Pattern属性发生改变时,将产生PatternChange事件。
4) FileName属性
FileName属性用来设置和返回文件列表框中将显示的文件名称。是运行时属性,只能在程序代码中设置。
设置FileName属性的语法格式:
        [窗体名.]<文件列表框名>.FileName = 文件名称
例:
        File1.FileName = “D:\*.EXE”
执行该语句后,在文件列表框中显示D盘根目录下的所有扩展名为.EXE的文件。同时FilePath的属性值也改变为“D:\”,且产生File1.PathChange事件。
5) ListCount属性
ListCount属性可用于组合框、驱动器列表框、目录列表框和文件列表框。它返回控件内所列项目的总数。该属性是运行时属性,只能在程序代码中使用。
例如:
        Print Dir1.ListCount
该语句功能是在窗体中显示目录列表框Dir1中所列目录数。
6) ListIndex属性
ListIndex属性可用于组合框、列表框、驱动器列表框、目录列表框和文件列表框,用来设置或返回当前控件上所选择的项目的“索引值”。
<2>常用事件
   文件列表框控件所特有的两个事件是PathChange和PatternChange。
1) PathChange事件
当文件列表框的Path属性改变时,就会产生PathChange事件。有以下两种情况:
ü 改变驱动器列表框中的当前驱动器或在目录列表框中重新选取当前目录,即在程序代码中分别使用
        File1.Path = Drive1.Drive

    File1.Path = Dir1.Path
这两条语句都会改变文件列表框控件的Path属性,从而印发PathChange事件。
ü 在程序代码中给文件列表框控件的FileName属性重新赋值,也会改变文件列表框控件的Path属性。
例如:
File1.FileName = “C:\Config.sys”

2) PatternChange事件
当文件列表框的Pattern属性在程序代码中被改变时,发生PatternChange事件。
<3>使用文件属性
       可以使用文件属性(Archive、Normal、System、Hidden和Readonly)来指定文件列表框中显示哪一类的文件。System和Hidden属性的缺省值为“False”,而Archive、Normal和Readonly属性的缺省值“True”。假如要在列表框中只显示“只读”文件,只需将Readonly属性设置为“True”,而其他属性设置为“False”:
        File1.Readonly = True
        File1.Archive = False
        File1.Normal = False
        File1.System = False
        File1.Hidden = False
    当Normal属性为“True”时,具有System和Hidden属性的文件不显示。当Normal属性为“False”时,仍然可以显示具有Readonly和Archive属性的文件,不过必须将这需属性设置为“True”。
4. 组合使用文件系统控件
驱动器、目录和文件列表框控件通常总是在一起使用,如果同时使用文件系统的这三个控件时,则应该在每个控件的Change事件过程中编写相关的同步化程序代码,以保证在三个列表框中同步地显示相关信息。
    Private Sub Drive1_Change()
        Dir1.Path = Drive1.Drive
    End Sub
    Private Sub Dir1_Change()
        File1.Path = Dir1.Path
    End Sub
   驱动器、目录和文件列表框同步操作的一般过程示例:
      Option Explicit
Private Sub CmdDir_Click()
           Dir1.Path = TxtPath.Text
           TxtFile.Text = "*.*"
End Sub

Private Sub CmdEnd_Click()
          End
End Sub

Private Sub CmdFile_Click()
          Dim Fname As String
          Dim I As Integer, N As Integer
          Fname = TxtFile.Text
          File1.FileName = Fname
          Dir1.Path = File1.Path
          N = Len(Fname)
          Do Until N = 0
              If Mid(Fname, N, 1) = "\" Then Exit Do
              N = N - 1
         Loop
         TxtFile.Text = Mid(Fname, N + 1)
         File1.FileName = Mid(Fname, N + 1)
End Sub

Private Sub Dir1_Change()
         File1.Path = Dir1.Path
         TxtPath.Text = Dir1.Path
         File1.Pattern = "*.*"
         TxtFile.Text = File1.Pattern
         Drive1.Drive = Dir1.Path
End Sub

Private Sub Drive1_Change()
         Dir1.Path = Drive1.Drive
         File1.Pattern = "*.*"
End Sub

Private Sub File1_Click()
         TxtFile.Text = File1.List(File1.ListIndex)
         File1.FileName = File1.List(File1.ListIndex)
End Sub

Private Sub Form_Load()
         TxtPath.Text = Dir1.Path
         TxtFile.Text = "*.*"
End Sub




地主 发表时间: 11/24 23:22

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号