【问题标题】:VBScript Do Until Loop Keeps Skipping The First LineVBScript 执行直到循环不断跳过第一行
【发布时间】:2021-04-08 00:14:59
【问题描述】:

我的直到循环一直跳过我的文本文件的第一行。我已将 ReadLine 函数移出循环,但它仍会跳过第一行。有人可以帮我吗?第一行不是标题,我需要阅读它。

Sub subRunLoop
  i = 1
  CountButtonClicks = 0
  CountLoans = 0
  CountSysErrors = 0
  SuccessfulEntries = 0


  StartTime = Timer()
  strLine = objFile.ReadLine
  Do Until objFile.AtEndOfStream
            
            arrFields = Split(strLine,",")
            Number  = arrFields(0)
            subDoWork (i)                   
    
    i = i + 1
    Count = Count + 1
    
    If objFile.AtEndOfStream Then
        subWriteScriptInformation
        subWriteToScriptTracker
        subEndScript
    End If      
    Loop
End Sub

【问题讨论】:

  • 如果你用 0 而不是 1 来初始化 i 会有什么变化吗?
  • 你不需要把 ReadLine 放在外面。您是否尝试通过检查每行是否正确读取来进行故障排除?尝试将 MsgBox 放在 ReadLine 之后以查看每行的输出。除此之外,您的其他自定义函数可能正在做一些导致问题的事情
  • 这正在工作。我已将 ReadLine 放回 Split 正上方的 Loop 内,并将 i 更改为 0 而不是 1,现在它正在读取每一行而不跳过第一行

标签: loops vbscript readline until-loop


【解决方案1】:

这正在工作。将 ReadLine 放回循环中并将 i 更改为 0 而不是 1 允许脚本读取每一行

Sub subRunLoop
 i = 0
 CountButtonClicks = 0
 Count = 0
 CountSysErrors = 0
 SuccessfulEntries = 0


 StartTime = Timer()
 Do Until objFile.AtEndOfStream
            strLine = objFile.ReadLine  
            arrFields = Split(strLine,",")
            subDoWork (i)                   
    
    i = i + 1
    Count = Count + 1
    
    If objFile.AtEndOfStream Then
        subWriteScriptInformation
        subWriteToScriptTracker
        subEndScript
    End If      
    Loop
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 2017-05-09
    • 1970-01-01
    • 2013-02-09
    • 2019-01-05
    相关资源
    最近更新 更多