本主题介绍用于从文件读取结果的VBscript
我理解FSO不知道如何读取文件中最后一行的内容。 我在这里的场景是验证最后一行,但只有一行,并从中得到结果 假设,如果我需要在最后但只有1行中得到通过或失败的结果。因为我从第一行开始,所以获得正确结果的场景是有限的,因为前面的文件中有通过或失败的可能性 我在文件中的最后两行是 失败 完成 或 通过 完成 为了得到实际结果,我使用嵌套的IF验证来得到结果。下面是相同的代码片段本主题介绍用于从文件读取结果的VBscript,vbscript,Vbscript,我理解FSO不知道如何读取文件中最后一行的内容。 我在这里的场景是验证最后一行,但只有一行,并从中得到结果 假设,如果我需要在最后但只有1行中得到通过或失败的结果。因为我从第一行开始,所以获得正确结果的场景是有限的,因为前面的文件中有通过或失败的可能性 我在文件中的最后两行是 失败 完成 或 通过 完成 为了得到实际结果,我使用嵌套的IF验证来得到结果。下面是相同的代码片段 str1 = "Passed" str2 = "Failed" str3="Done!!!!"
str1 = "Passed"
str2 = "Failed"
str3="Done!!!!"
Do Until objFile.AtEndOfStream
str=objFile.ReadLine
if StrComp(str, str1) = 0 Then
str=objFile.ReadLine
if StrComp(str,str3) = 0 Then
result="PASS"
End if
elseif StrComp(str, str2) = 0 Then
str = objFile.ReadLine
if StrComp(str,str3) = 0 Then
result="FAIL"
End if
End if
Loop
这会影响性能。是否有其他方法可以更好地实现此实现 这里有一个函数,它接受一个文件名并返回从第二行到最后一行的读取:
Function PenultimateLine(fname)
Dim fso, ts, line1, line2
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(fname)
Do Until ts.AtEndOfStream
line1 = line2
line2 = ts.ReadLine
Loop
ts.Close
PenultimateLine = line1
End Function
您可以使用此函数提取该行,然后根据“通过”或“失败”对其进行测试(顺便说一句,这可以通过=
而不是StrCmp
完成)
这会占用内存,不适用于非常大的文件。为什么要用
vb.net
标记?看起来更像VBScript.VB6!=VB.Net!=VBA。请仅使用与您的问题相关的标签。不要只添加听起来熟悉或以相同字母开头的标签。猫和车不是一回事,因为它们都以字母“ca”开头。标签在这里有特定的含义和用途。如果您不确定标签是否适用,请阅读其说明。如果您仍然不确定,请不要使用它;如果需要,这里会有人添加它。
A = Split(objfile.readall, vbcrlf)
B = A(ubound(A)-2)