2011-08-17 177 views
1

我有一个包含4个字段的文件。使用VBScript读取CSV文件

A,B,C,D 

我只想提取第4场,并更改为“E”

反正有没有做到这一点?

+0

字段是固定长度还是可变长度? –

+0

可变长度。 –

回答

3

假设这些值不包含逗号,请使用FileSystemObject(FSO)在文件中读入,然后在逗号上使用Split每行。根据需要更改4个值的结果数组,然后将join再次作为逗号分隔的字符串一起使用。完成所有更改后,使用FSO将数据写回到文件。

因此,像:

Set outputFile = fso.OpenTextFile(FileName1, ForWriting, True) 
Set inputFile = fso.OpenTextFile(FileName2, ForReading) 
Do While inputFile.AtEndOfStream <> True 
    arr = Split(inputFile.ReadLine, ",") 
    arr(3) = "E" 
    outputString = Join(arr, ",") 
    outputFile.WriteLine outputString 
Loop 

请注意,该代码是经过充分测试,并从内存大多写得那么几乎可以肯定是不正确的,但只给你一个想法。

-1

也许一个简单的替换会工作。

Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFile = objFSO.OpenTextFile("c:\data.txt") 
strSearchString = objFile.ReadAll 
objFile.Close 

strSearchString = Replace(strSearchString,"A,B,C,D","A,B,C,E") 

Set objFile = objFSO.OpenTextFile("c:\data.txt",2) 
objFile.Write strSearchString 
objFile.Close 
+0

值'A','B','C',...只是样本。此外,旧的答案应该做好工作。 – Stephan