脚本在第一行旁边写了新行,而不是txt的最后一行

时间:2019-06-19 11:07:55

标签: vbscript qtp hp-uft

我的脚本必须迭代。在第一个中,它读取一个txt,读取第一行,并做完一些事情(创建新字符串)后,将该字符串写入一个临时文件中,并删除原始txt后,将其保存为与原始文本。

在第二次迭代中,它将获取创建的txt并尝试在文件末尾写入新行。问题是现在代码在第一行旁边写了新行,而不是在最后一行写上。

示例:

预期结果: 004; J2Yf; 18090023; 20200725; 00000509990; VOLVO; D; YFWfS9Z9lu06JM0Rk; D; FA; 18090023 004; J2Yf; 18090023; 20200725; 00000509990; VOLVO; D; YFWfS9Z9lu06ftR78; D; FA; 18090023

错误的结果: 004; J2Yf; 18090023; 20200725; 00000509990; VOLVO; D; YFWfS9Z9lu06JM0Rk; D; FA; 18090023 004; J2Yf; 18090023; 20200725; 00000509990; VOLVO; D; YFWfS9Z9R06ftR78; D> FA <18090023 / p>

如何在最后一行写?

TIA;)

For Iterator 1 to 2
    sF1 = "C:\Users\ig.ext\Desktop\Automation\Archivo.txt"
    '#Opening file  
    Dim objFS 
    Dim objFile
    strTemp = "C:\Users\" & Environment("UserName") & "\Desktop\Automation\Temp.txt"
    Set objFS = CreateObject("Scripting.FileSystemObject")

    If Iterator = 1 Then

        Set objFile = objFS.OpenTextFile(sF1)
        content = objFile.ReadLine

        '#Creating temporal file
        Set objOutFile = objFS.CreateTextFile(strTemp,True)
    Else 
        Set objFile = objFS.OpenTextFile(sF1, 8)        

    End If

    sResultado = "004;J2Yf;18090023;20200725;00000509990;VOLVO;D;YFWfS9Z9lu06ftR78;D;FA;18090023"

    If Iterator = 1 Then

        '#Write and close
        objOutFile.Write(sResultado)

        objOutFile.Close
        objFile.Close
        objFS.DeleteFile(sF1)
        objFS.MoveFile strTemp,sF1
    else

        '#Write line and close
        objFile.Writeline(sResultado)
        objFile.Close
    End If

Next

1 个答案:

答案 0 :(得分:2)

@@ Geert Bellekens评论:

  

在第一次迭代中使用WriteLine()而不是Write()在写入第二行之前添加换行符。

(答案添加为社区Wiki