使用VBScript将数据添加到CSV的最后一行
我试图附加CSV的最后一行,并允许C#用户控件读取它 我们必须这样做的原因是,数据在两个不同的时间可用 除以下情况外,它工作正常:使用VBScript将数据添加到CSV的最后一行,csv,vbscript,Csv,Vbscript,我试图附加CSV的最后一行,并允许C#用户控件读取它 我们必须这样做的原因是,数据在两个不同的时间可用 除以下情况外,它工作正常: 它在追加后生成一个空行 重复3-4个步骤后,将删除整个文件 代码如下: Set objFSO = CreateObject("Scripting.FileSystemObject") Set objInFile = objFSO.OpenTextFile("R:\cat3_data.csv", 1) strContents = objInFile.ReadAll
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objInFile = objFSO.OpenTextFile("R:\cat3_data.csv", 1)
strContents = objInFile.ReadAll
objInFile.Close
arrRows = Split(strContents, vbNewLine)
MsgBox UBound(arrRows)
arrRows(UBound(arrRows) - 1) = arrRows(UBound(arrRows) - 1) & "," & "Hi" & _
"," & "Hi" & "," & "Hi" & "," & "Hi" & "," & "Hi"
strContents = Join(arrRows, vbNewLine)
Set objOutFile = objFSO.OpenTextFile("R:\cat3_data.csv", 2)
objOutFile.WriteLine strContents
objOutFile.Close
Set objFSO = Nothing
我发现了两件事:1)
strContents=join(arrRows,vbNewLine)
在添加新数据时创建空行。鉴于这是一个逗号分隔的CSV,使用逗号而不是vbNewline
,似乎是有意义的,并且set objOutFile=objFSO.OpenTextFile(“R:\cat3_data.CSV”,2)
中的2
正在“写入”文件。如果要“追加”,则需要使用8
。但追加会再次添加整行。基本思想是更改CSV最后一行中的最后5个值除了5个Hi之外,还将它们更改为什么?在你的前三句话中,你两次提到了“append”,你不是想在下一行加上5个Hi,后面没有空行吗?我想我没有解释清楚。它的工作方式是有一个VBScript a.vbs,它捕获12/17列的日期并将其添加到csv CSVA.csv。然后在2-3秒后,另一个VBScript B.vbs将捕获其余列的数据,现在它必须访问CSVA.csv并将这些数据添加到最后一行的相应列中。我在这里展示的代码是B.vbs的一部分。那些Hi是占位符。在此之后,A.vbs将再次访问文件以写入新的数据行,B.vbs必须向其中添加更多数据,并且此操作将继续。WriteLine
自动在写入的文本中追加一行新行。使用Write
来避免这种情况。连接不会更改最后一行(实际上是倒数第二行)中的值,而是将附加值附加到该行(a,b,c
->a,b,c,d,e,f
)。请澄清您实际想要实现的目标(示例输入和输出会有所帮助)。至于要删除的文件,您发布的代码中没有任何内容可以做到这一点。我发现了两件事:1)strContents=join(arrRows,vbNewLine)
在添加新数据时创建空行。鉴于这是一个逗号分隔的CSV,使用逗号而不是vbNewline
,似乎是有意义的,并且set objOutFile=objFSO.OpenTextFile(“R:\cat3_data.CSV”,2)
中的2
正在“写入”文件。如果要“追加”,则需要使用8
。但追加会再次添加整行。基本思想是更改CSV最后一行中的最后5个值除了5个Hi之外,还将它们更改为什么?在你的前三句话中,你两次提到了“append”,你不是想在下一行加上5个Hi,后面没有空行吗?我想我没有解释清楚。它的工作方式是有一个VBScript a.vbs,它捕获12/17列的日期并将其添加到csv CSVA.csv。然后在2-3秒后,另一个VBScript B.vbs将捕获其余列的数据,现在它必须访问CSVA.csv并将这些数据添加到最后一行的相应列中。我在这里展示的代码是B.vbs的一部分。那些Hi是占位符。在此之后,A.vbs将再次访问文件以写入新的数据行,B.vbs必须向其中添加更多数据,并且此操作将继续。WriteLine
自动在写入的文本中追加一行新行。使用Write
来避免这种情况。连接不会更改最后一行(实际上是倒数第二行)中的值,而是将附加值附加到该行(a,b,c
->a,b,c,d,e,f
)。请澄清您实际想要实现的目标(示例输入和输出会有所帮助)。至于被删除的文件,你发布的代码中没有任何东西可以做到这一点。