2016-10-21 45 views
-1

我已將CSV替換爲,(逗號)至|(管道),我試圖運行下面的代碼,它給我提供了運行時錯誤。在VBScript中將逗號替換爲管道

Set objFSO = CreateObject ("Scripting.FileSystemObject") 
Dim filetxt 
Const ForReading = 1, ForWriting = 2, ForAppending = 8 
Const fmtUnicode = -1, fmtASCII = 0, fmtDefault = -2 
Set re = New RegExp 
Dim strInput 
Dim Matches 
Dim Match 
Dim myFile 
myFile = "\\xxxx\yyyy\Cxxxxx\Business Performance Reporting\H.csv" 
re.IgnoreCase = True 
Set filetxt = objFSO.OpenTextFile(myFile, ForReading, False, fmtDefault) 
Dim arrFileLines() 
i = 0 
Do Until filetxt.AtEndOfStream 
    ReDim Preserve arrFileLines(i) 
    arrFileLines(i) = filetxt.ReadLine 
    strInput = arrFileLines(i) 
    'WScript.Echo(strInput) 
    re.Pattern = "\s" 
    re.Global = True 
    arrFileLines(i) = re.Replace(strInput, ",", "|") 
    i = i + 1 
Loop 
filetxt.Close 
Set filetxt = objFSO.OpenTextFile(myFile, ForWriting, False, fmtDefault) 
For j = LBound(arrFileLines) To UBound(arrFileLines) 
    filetxt.WriteLine(arrFileLines(j)) 
Next 
filetxt.Close 
Set filetxt = Nothing 
+3

還有多少這些問題需要......從[無用重複項目](https://www.google.com/search?q=site%3Astackoverflow.com&oq=site% 3Astackoverflow.com&q = +#安全=關閉&q =網站:stackoverflow.com +的VBScript +替換+字符串)! – Lankymart

回答

1

re.Pattern = "\s"表示您正在尋找空白區域?我不認爲這是相關的。

arrFileLines(i) = re.Replace(strInput, ",", "|") 

在VBScript一個RegExp對象的Replace() method只需要2個參數。

根據CSV文件中的確切數據格式(例如,您是否在引用字符串中包含逗號),而不是使用正則表達式,您可以使用VBScript Replace() function

一個簡單的arrFileLines(i) = Replace(strInput, ",", "|")將完成這項工作。從您的代碼中刪除set re = New RegExp和所有其他re.??

+0

Hi Ansgar Wiechers,感謝您的幫助:)但似乎在最後的所有列都被取代,但我會看看它。然而,我有一個csv有姓,名(單列之間有逗號)。我正在使用SSIS或TD工具的工具認爲它是一個單獨的列......我想解決方案只取代這些逗號... –