代码之家  ›  专栏  ›  技术社区  ›  AlliDeacon

VBS循环返回预期的NEXT行

  •  0
  • AlliDeacon  · 技术社区  · 1 年前

    我试图在平面文件中找到一个字段值,并根据该值设置一个变量。这是我的代码:

    Set file = fso.OpenTextFile(DataFileName, 1)
    do until file.AtEndOfStream
        if StrComp(left(file.readLine, 3) , "H23") = 0 Then
            WScript.Echo file.ReadLine
            If StrComp(Split(file.readLine, "~")(4) , "1") = 0 Then
                ExportMapName = "ExportMap_1"
            Else
                ExportMapName = "ExportMap_2"
            End If
    
        End If
    loop
    Wscript.Echo ExportMapName
    

    然而,当它给我 ReadLine 值,它显示 H24 就像,它跳过了 H23 线我确信我的循环嵌套错误,但我找不到任何能给我指导的地方。TIA!

    0 回复  |  直到 1 年前
        1
  •  1
  •   Rno    1 年前

    使命感 ReadLine TextStream 返回的对象 OpenTextFile 将读者推进到下一行。您的问题的简化说明:

    do until file.AtEndOfStream
        WScript.Echo file.ReadLine 'returns a line
        WScript.Echo file.ReadLine 'returns the next line
    loop
    

    还要注意逻辑错误:如果第一个 ReadLine 是文件中的最后一行,第二行将发生错误 ReadLine .