vbscript从csv文件中读取行,匹配数据并写入同一文件

时间:2014-02-25 19:23:39

标签: vbscript

我正在尝试编写一个VBScript,它将从csv文件中读取行,并能够将数据从一行匹配到另一行。以下是CSV包含的示例:

ID,Uplink,Value1,Value2,Downlink,Profile
ID,UPLINK,156,145,DownlinkP,Profile1
ID,UPLINK,156,145,DownlinkG,ProfileUnknown

这只是必须保存的标题,第一行类型和第二行类型。

我的任务:我需要找到让脚本执行以下操作的方法:检查行是否包含DownlinkG,如果是,则需要找到匹配Value1和Value2的行,复制Profile1到ProfileUnknown的字段。这些文件平均长度为100-200行,但它们最多可以达到500-600。

编辑:我意识到使用数组可能就是答案,然后我甚至可以将输出写回同一个文件而不是创建新文件。唉,由于某些奇怪的原因,数组在编程中一直是我的弱点。

1 个答案:

答案 0 :(得分:3)

阵列可能适合你,但我会走另一条路。您是否考虑将CSV文件视为数据库?您可以像连接SQL Server或Access数据库一样连接到结构化文本文件(如CSV)。然后,您可以使用SQL查找匹配的记录。例如:

With CreateObject("ADODB.Connection")

    .Open "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=C:\MyFolder\;Extensions=csv;"

    Dim Recordset
    Set Recordset = .Execute("select Value1,Value2 from YourFile where Downlink='DownlinkG'")
    ...

End With