我尝试使用批处理来提取所需的代码,但这对大文件不起作用。我想知道这是否可以用VB脚本。所以,
我需要从两个分隔符之间的文件中提取文本并将其复制到TXT文件。此文本看起来像XML代码,而不是分隔符<string> text... </string>
,我有:::SOURCE text .... ::::SOURCE
。正如您在第一个分隔符中看到的那样是':'的3倍,而第二个是':'
最重要的是这两个分隔符之间有多行。
文字示例:
text&compiled unreadable characters
text&compiled unreadable characters
:::SOURCE
just this code
just this code
...
just this code
::::SOURCE text&compiled unreadable characters
text&compiled unreadable characters
期望的输出:
just this code
just this code
...
just this code
答案 0 :(得分:1)
也许你可以试试这样的事情:
filePath = "D:\Temp\test.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(filePath)
startTag = ":::SOURCE"
endTag = "::::SOURCE"
startTagFound = false
endTagFound = false
outputStr = ""
Do Until f.AtEndOfStream
lineStr = f.ReadLine
startTagPosition = InStr(lineStr, startTag)
endTagPosition = InStr(lineStr, endTag)
If (startTagFound) Then
If (endTagPosition >= 1) Then
outputStr = outputStr + Mid(lineStr, 1, endTagPosition - 1)
Exit Do
Else
outputStr = outputStr + lineStr + vbCrlf
End If
ElseIf (startTagPosition >= 1) Then
If (endTagPosition >= 1) Then
outputStr = Mid(lineStr, startTagPosition + Len(startTag), endTagPosition - startTagPosition - Len(startTag) - 1)
Exit Do
Else
startTagFound = true
outputStr = Mid(lineStr, startTagPosition + Len(startTag)) + vbCrlf
End If
End If
Loop
WScript.Echo outputStr
f.Close
我已经假设开始和结束标记可以在文件内的任何位置,而不仅仅是在行的开头。如果您有关于&#34;编码&#34;。
的更多信息,也许您可以简化代码