用VB编程中,遇到以下两个问题:1)我想在一个目录下找出所有文件名带有ND字母的文件,
并且,把这些文件名存到一个数组里面。文件个数不定。2)对于以上找出的文件(文本文件),我想找出某些行中的某些字段。
请问怎么实现?人人有分。多谢多谢。
并且,把这些文件名存到一个数组里面。文件个数不定。2)对于以上找出的文件(文本文件),我想找出某些行中的某些字段。
请问怎么实现?人人有分。多谢多谢。
第二个用open ,再用readline
Private Sub SeachFile(ByVal strFolderPath As String)
Dim Fso As Object
Dim Fol As Object
Dim Fil As Object
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Fol = Fso.GetFolder(strFolderPath)
For Each Fil In Fol.Files If Fso.GetExtensionName(Fil.Path) = "txt" Then
If InStr(Fil.Name, "ND") <> 0 Then
ReDim Preserve fileArr(i)
fileArr(i) = Fil.Path '把文件的全路径存入数组,如果只想存文件名,把Fil.Path改为Fil.Name
i = i + 1
End If
End If
Next For Each Fol In Fol.SubFolders
SeachFile Fol '如果不需要遍历子文件夹,把这句注释掉
Next
End Sub
'调用
Private Sub Command1_Click()
SeachFile "D:\test\"
MsgBox "符合条件的文件数为:" & UBound(fileArr) + 1
End Sub
第2个问题只能打开每个文本文件来遍历每一行。
如果文件数据较多,或者内容比较多的话,很耗时间。
建议楼主可以尝试建立一个副本,里面存放一些对应的关键字,直接查找副本,指向正本文件。
如有a,b,c,d,e五个文本文件,则对应有一个content文本文件,里面有五行,分别存放对应的关键字,直接查找content,则可以找到对应的文件。
这只是一种思路,供楼主参考。
Dim Files() As String
Dim n As IntegerstrFile = Dir(myPath & "\*")Do Until strFile = ""
Redim Preserve Files(n)
Files(n) = strFile
n = n + 1
strFile = Dir
Loop
MsgBox "找到 " & n + 1 & " 个文件。"第二个问题请说明你的需求。