使用VBScript将数据添加到CSV的最后一行

使用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

我试图附加CSV的最后一行,并允许C#用户控件读取它

我们必须这样做的原因是,数据在两个不同的时间可用

除以下情况外,它工作正常:

  • 它在追加后生成一个空行
  • 重复3-4个步骤后,将删除整个文件
  • 代码如下:

    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
    )。请澄清您实际想要实现的目标(示例输入和输出会有所帮助)。至于被删除的文件,你发布的代码中没有任何东西可以做到这一点。