使用 vb 在 .txt 文件中查找最后一个(重复的)字符串

finding the last (duplicate) string in .txt file with vb

(我对 vb 很陌生,但对 vba 很熟悉)。

我正在尝试找出如何按照以下方式从下到上阅读文本文件: 文本文件更新 'x' 时间段;正在添加的行, 我需要找到包含文本 "System Pass" 的最后一个条目 "line"。然而,在文件的最后一行和包含所需字符串的最后一行之间有很多不必要的 "dump" 行。

使用 excel 我曾经导入文本文件并循环遍历从底部开始的行,并使用 inStr 函数确定我是否有正确的字符串行。但这不起作用,或者我只是不知道如何将代码转换为 vb.

非常感谢您的帮助。 谢谢 菲利普

我建议使用 Excel 导入数据,您可以使用 NPOI 库,使用 NPOI 您可以轻松读取 .NET 中的 Excel 个文件。

编辑:

使用 VB 读取 txt 文件:https://msdn.microsoft.com/en-us/library/yw67h925.aspx

下面是一个示例,说明如何将 txt 文件读入数组并使用 instr 从下到上轮询以搜索文本:

Const ForReading = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("c:\temp\test.txt", ForReading)

strText = objTextFile.ReadAll
objTextFile.Close

MyArray = Split(strText, vbCrLf)

For X = Ubound(MyArray) to lbound(MyArray) step -1
    If instr(1,MyArray(X),"T") > 0 then
        Wscript.Echo MyArray(X)
    End if
Next

我的测试文件包含这个:

hello 
World
This
Is
Text

VBS文件弹出2个消息框,一个是"Text",一个是"This"

如果需要,您可以调暗它们:

Dim objFSO
Dim objTextFile
Dim X
Dim MyArray

但是 VBS 不支持类型,所以不要尝试 Dim X as Long 或类似的东西。

希望对您有所帮助