【发布时间】:2016-04-16 12:44:40
【问题描述】:
您好,我正在文件中搜索特定模式(前缀)并尝试返回整个单词。文件中有多次该模式
例如:我有一个包含如下文本的文本文件:-
[CATS].[Hello_World] Lorem Ipsum [CATS].[Hi_Venus] Demo Text [CATS].[Yo_Moon] Lorm Ipsum
文本文件中没有合适的行,意味着一行可能包含 整个事情,所以返回线是有问题的。 程序应返回 [Hello_World]、[Hi_Venus]、[Yo_Moon] 以匹配模式 [CATS]。
我的当前代码(.hta 文件)是:-
Dim sStartPath, sStartFile, sFilter, sCaption, filePath
sStartPath = "D:\Remote"
sStartFile = sStartPath & "\nul"
sFilter = "All Files (*.*)|*.*|" _
& "VBScript (*.vbs;*.vbc)|*.vbs;*.vbc|" _
& "HTML (*.htm;*.html;*.hta)|*.htm;*.html;*.hta|"
sCaption = "Choose a File:"
Sub ProcessFile()
On Error Resume Next
filePath = document.My_Process_Form.txtfile.value
Set contents = filePath.OpenAsTextStream
If err.number = 0 then
Linenum = 0
Do Until contents.AtEndOfStream
line = contents.readline
Linenum = Linenum + 1
Test = Instr(line, [CATS])
If Isnull(Test) = false then If Test > 0 then demo.innerText = "1" & filePath & " " & Linenum
Loop
Else
err.clear
End If
End Sub
我在具有其他几个功能的 hta 应用程序中使用它。 这将返回包含该模式的文件路径和行号。但我希望它搜索前缀并返回上面提到的下一个元素。
【问题讨论】:
-
MyArray = Split(line, "[CATS].", -1, 1)?见Split Function。 -
Split() 不好,因为输入包含既不是分隔符也不是目标的文本。