我有多个每天生成的文本文件。
我想从最新的修改后的文本文件中搜索“ apple”字符串。 如果找不到该字符串,我将需要从昨天的文本文件中搜索。 如果仍然找不到,我将需要从昨天的文本文件的前一天开始搜索。这个过程一直进行到我找到字符串为止。
举个例子:
今天创建的文本文件名为08112018.txt
昨天创建的文本文件名为08102018.txt
前天创建的文本文件名为08192018.txt
我将首先从08112018.txt开始搜索“苹果”。 如果找不到,我将在08102018.txt中搜索“苹果”。 该过程一直持续到找到“苹果”为止。
答案 0 :(得分:2)
以下是我认为可以为您带来最佳效果的内容:
首先将所有文件列出到断开连接的记录集中:
Set fso = CreateObject("Scripting.FileSystemObject")
Const ForReading = 1
Set list = CreateObject("ADOR.Recordset")
list.Fields.Append "name", 200, 255
list.Fields.Append "date", 7
list.Open
For Each f In fso.GetFolder("C:\your-folder-location").Files
list.AddNew
list("name").Value = f.Path
list("date").Value = f.DateLastModified
list.Update
Next
list.MoveFirst
然后您可以按上次修改日期对它们进行排序:
list.Sort = "date DESC"
现在,您可以从列表顶部开始并逐步进行操作。
Dim foundApple
list.MoveFirst
Do Until list.EOF Or foundApple
Do Until objTextFile.AtEndOfStream
Set objTextFile = fso.OpenTextFile(list("name"), ForReading)
strLine = objTextFile.ReadLine()
If InStr(strLine, "apple") <> 0 then foundApple = True
Loop
' If foundApple = True Then (Do whatever stuff you need)
list.MoveNext
Loop
list.Close