该脚本在第一行旁边写了一个新行,而不是 txt 的最后一行
The script is writing a new line beside the first line instead of being last line on a txt
我的脚本必须迭代。在第一个中,它读取一个 txt,获取第一行并在做一些事情(创建新字符串)后,将该字符串写入临时文件并在删除原始 txt 后,将临时文件保存为与原始文本。
在第二次迭代中,它获取创建的 txt 并尝试在文件末尾写入一个新行。问题是现在代码在第一行旁边写新行,而不是在最后一行写。
示例:
预期结果:
004;J2Yf;18090023;20200725;00000509990;沃尔沃;D;YFWfS9Z9lu06JM0Rk;D;FA;18090023
004;J2Yf;18090023;20200725;00000509990;沃尔沃;D;YFWfS9Z9lu06ftR78;D;FA;18090023
不正确的结果:
004; j2yf; 18090023; 20200725; 00000509990; volvo; d; yfwfs9z9lu06jm0rk; d; d; fa; fa; 18090023; 18090023 [= 25 = 25 =] 004; j2yf; j2yf; j2yf; 18090023; 18090023; 20200725; 20200725; =]
最后一行怎么写?
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
正如@Geert Bellekens评论的那样:
Use WriteLine() instead of Write() in your first iteration to add a newline before writing the second line.
(答案已添加为 社区 wiki)
我的脚本必须迭代。在第一个中,它读取一个 txt,获取第一行并在做一些事情(创建新字符串)后,将该字符串写入临时文件并在删除原始 txt 后,将临时文件保存为与原始文本。
在第二次迭代中,它获取创建的 txt 并尝试在文件末尾写入一个新行。问题是现在代码在第一行旁边写新行,而不是在最后一行写。
示例:
预期结果: 004;J2Yf;18090023;20200725;00000509990;沃尔沃;D;YFWfS9Z9lu06JM0Rk;D;FA;18090023 004;J2Yf;18090023;20200725;00000509990;沃尔沃;D;YFWfS9Z9lu06ftR78;D;FA;18090023
不正确的结果: 004; j2yf; 18090023; 20200725; 00000509990; volvo; d; yfwfs9z9lu06jm0rk; d; d; fa; fa; 18090023; 18090023 [= 25 = 25 =] 004; j2yf; j2yf; j2yf; 18090023; 18090023; 20200725; 20200725; =]
最后一行怎么写?
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
正如@Geert Bellekens评论的那样:
Use WriteLine() instead of Write() in your first iteration to add a newline before writing the second line.
(答案已添加为 社区 wiki)