【问题标题】:How to search keyword based on text files modified date?如何根据文本文件修改日期搜索关键字?
【发布时间】:2019-01-19 03:53:45
【问题描述】:

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

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

举个例子:

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

我将首先在 08112018.txt 中搜索“apple”。 如果没有找到,我会在 08102018.txt 中搜索“apple”。 该过程一直持续到找到“apple”为止。

【问题讨论】:

  • 使用Scripting.FileSystemObject。检查MCVE。
  • 看看this answer。
  • 如果您发现某个答案解决了您的问题,请考虑accepting it。没有必要将您的工作代码发布为自我回答,只有在您自己提出解决方案时才应该这样做。
  • 注意:看,伙计们,通常我不会对此发表评论,但来吧!看看你在这里有什么。一位新用户加入了该网站,提出了一个合理的问题并得到了有用的答案。与其社区试图通过指导他们的贡献来实现包容和乐于助人,不如说你们都采取了懒惰的选择,并对他们的第一个问题投了反对票。更加努力!给于帮助。建议/提交对问题的编辑。不要通过鞭笞他们的声誉、投票结束问题并离开来惩罚他们第一次访问的人。这个社区需要更加努力。

标签: string search text vbscript datemodified


【解决方案1】:

以下是我认为会给你最好的结果:

首先将您的所有文件列出到断开连接的记录集中:

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。

【讨论】:

  • 效果很好!谢谢!我只需要将“Set objTextFile = fso.OpenTextFile(list("name"), ForReading)”放在“直到 list.EOF 或 foundApple”之前。我正在研究如何回显我找到“Apple”的文本文件。有什么想法吗?
  • 如果你想要一种快速而肮脏的方式来立即找到文件,你可以使用MsgBox list("name"),否则如果你想要找到的文件记录在某个地方,你可以创建并写入一个单独的文件?取决于你的需求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
  • 2018-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多