龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VB开发 >

在VB中直接用ODBCAPI访问数据库

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
从WINDOWS95开始,微软为我们提供了一个好用的文件搜索器。使用这个搜索器,我们可以方便快捷的查找到符合条件的文件。但有时我们在程序设计中也需要这一功能,能否在自己的程序
从WINDOWS95开始,微软为我们提供了一个好用的文件搜索器。使用这个搜索器,我们可以方便快捷的查找到符合条件的文件。但有时我们在程序设计中也需要这一功能,能否在自己的程序中实现呢?答案当然是肯定的。下面我们就来着手设计一个VB程序中的文件搜索器。
  
   首先,进入VB中,建立一个新的表单。在表单上建立一个驱动器列表框(DriveList),一个目录列表框(FolderList),一个检查框(SubCheck),一个ListView控件(FileList),两个文本框(FileName,FileSize)和两个按钮(cmdSearch,cmdExit)。需要注意的是ListView控件是Mscomctl.ocx文件中一组ActiveX控件的一部分。若要在应用程序中使用ListView控件,必须将Mscomctl.ocx文件添加到工程中。选择ListView控件,点击鼠标右键,在弹出菜单中选择“属性”。在属性窗口的“列首”页中设置将要显示的列,连续按动“插入列”5次。排列好各控件的位置,然后加入以下代码:
  
  OptionExplicit
  DimFileSysAsScripting.FileSystemObject
  
  PrivateSubCmdExit_Click()
  End
  EndSub
  
  PrivateSubDriveList_Change()
  FolderList.Path=DriveList
  EndSub
  
  PrivateSubForm_Load()
  DimIAsInteger
  SetFileSys=NewScripting.FileSystemObject
  FolderList.Path=Left(DriveList.Drive,2)&""
  WithFileList.ColumnHeaders.Item(1)
  .Alignment=lvwColumnLeft
  .Text="文件名"
  .Width=2000
  EndWith
  WithFileList.ColumnHeaders.Item(2)
  .Alignment=lvwColumnRight
  .Text="大小(KB)"
  .Width=1500
  EndWith
  WithFileList.ColumnHeaders.Item(3)
  .Alignment=lvwColumnLeft
  .Text="类型"
  .Width=1500
  EndWith
  WithFileList.ColumnHeaders.Item(4)
  .Alignment=lvwColumnLeft
  .Text="路径"
  .Width=2000
  EndWith
  WithFileList.ColumnHeaders.Item(5)
  .Alignment=lvwColumnLeft
  .Text="修改时间"
  .Width=2000
  EndWith
  EndSub
  
  PrivateSubForm_Unload(CancelAsInteger)
  SetFileSys=Nothing
  EndSub
  
  PrivateSubcmdSearch_Click()
  DimSFolderStartAsScripting.Folder
  SetSFolderStart=FileSys.GetFolder(FolderList.Path)
  FileList.ListItems.Clear
  AddFilesSFolderStart
  IfFileList.ListItems.Count=0ThenMsgBox_
  "没找到任何符合条件的文件!",vbOKOnly vbInformation,"提示信息"
  EndSub
  
  PrivateSubAddFiles(SFolderSearchAsScripting.Folder)
  DimSFolderAsScripting.Folder
  DimSFileAsScripting.File
  DimsngFileSizeAsSingle
  DimlngSizeAsLong
  DimItmAsListItem
  IfSubCheck.Value=1Then
  IfSFolderSearch.SubFolders.CountThen
  ForEachSFolderInSFolderSearch.SubFolders
  AddFilesSFolder
  NextSFolder
  EndIf
  EndIf
  sngFileSize=FileSize*1000
  ForEachSFileInSFolderSearch.Files
  WithSFile
  If.Size>=sngFileSizeAndIIf(FileName.Text<>"",_
  InStr(.Name,FileName.Text)>0,True)Then
  SetItm=FileList.ListItems.Add(Text:=.Name)
  lngSize=.Size/1000
  WithItm
  .SubItems(1)=Format(lngSize,"#,###")
  .SubItems(2)=SFile.Type
  .SubItems(3)=SFile.ParentFolder
  .SubItems(4)=SFile.DateLastModified
  EndWith
  EndIf
  EndWith
  NextSFile
  SetItm=Nothing
  SetSFolder=Nothing
  EndSub
   运行后,选择相应目录,再在FileName文本框中输入要查找的文件名或文件名的一部分,然后再在FileSize文本框中输入文件的大小,按下搜索按钮即可搜索到相应文件。当然,这只是个功能较为简单的文件搜索器,有兴趣的读者可以使用Scripting.FileSystemObject对象的属性为其添加一些更为有用的功能。
  
   本例程序在VisualBasic4.0、Windows95环境下调试通过。
  ->

精彩图集

赞助商链接