-1
我導入其中包含逗號作爲雙引號括起來,像下面一個字符串的一部分csv文件elcosed:替換逗號(,)在雙引號括起來
a,b,c,d,e,f a,"b,c,d,e",f
爲了得到正確的領域,我想先改變每一行,所以我得到這個期望輸出:
a,b,c,d,e,f a,"b;c;d;e",f
我做了搜索第一,但我沒有找到堆棧溢出別的,我很少在VBScript工作。任何幫助讚賞。
編輯:編輯補充我來完成這個任務
Sub csv2tab()
Const ForReading = 1
Const ForWriting = 2
Dim regex As Object
Set regex = CreateObject("VBScript.Regexp")
regex.IgnoreCase = True
regex.Global = True
regex.Pattern = """[^""]*""|[^,]*"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Users\venkat\Desktop\Freelancers\Upwork_tasks\Chris Hickey\Datafiles\smallerfile_11.csv", ForReading)
Do Until objFile.AtEndOfStream
strLine = objFile.ReadLine
strLine = Replace(strLine, regex.Replace(Line, ","), vbTab)
strNewText = strNewText & strLine & vbCrLf
Loop
objFile.Close
Set objFile = objFSO.OpenTextFile("C:\Users\venkat\Desktop\Freelancers\Upwork_tasks\Chris Hickey\Datafiles\test.txt", ForWriting)
objFile.WriteLine strNewText
objFile.Close
End Sub
在上面的代碼的代碼,我試圖改變分隔符選項卡,很好,但不是強制性的我。我想我用正則表達式搞亂了某個地方。
堆棧溢出不是代碼寫入服務。努力自己解決這個問題。如果遇到困難,您可以解釋遇到的問題,包括代碼的相關部分,並詢問關於該代碼的具體問題,我們會盡力幫助。祝你好運。 –
使用'Split(input,「,」)'解析csv數據讓我很難過。這只是一個很多的邊緣案例。尋找一個專用的,專用的csv解析器而不是'Split()',突然之間這個問題就消失了。 –
@KenWhite,我用我試過的代碼更新了主題。 – Venkat