2011-08-17 179 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