0

我每天都会生成多个文本文件。

我想从最新修改的文​​本文件中搜索“apple”字符串。如果找不到字符串,我需要从昨天的文本文件中搜索。如果还没有找到,我需要从前天的文本文件开始搜索。该过程继续进行,直到我找到字符串。

举个例子:

今天创建的
文本文件名为:08112018.txt 昨天创建的文本文件名为:08102018.txt 前天
创建的文本文件名为:08192018.txt

我将首先在 08112018.txt 中搜索“苹果”。如果没有找到,我会在 08102018.txt 中搜索“apple”。该过程继续进行,直到找到“苹果”。

4

1 回答 1

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
  • 我刚刚把这段代码脑残了。它没有经过测试。YMMV。
于 2018-08-12T02:26:38.157 回答