我正在讀取VB.net中的csv文件並將行保存到SQL數據庫。在我的代碼稍後的一段時間,應用程序中會回顧SQL行,並使用Split函數來獲取「字段」值。分割完成後,逗號作爲分隔符。在字符串中替換逗號,但僅在VB.net中的特定位置
該應用程序處理許多其他文件(包括excel),並且split函數用於所有這些文件。
我現在面臨的問題是我讀取的一個csv文件的字段值以「後跟多個值,以逗號分隔並以另一個字符結尾」開頭。正常讀取csv文件會導致這些單個字段值中的每一個都被視爲單獨的值。希望我有道理?
一個例子行是:
Elker,MissB,"Bus, Taxi, Train, Ferry, Parking, Toll",800253
那裏應該只被分離以4列,它們就分開,以9列來代替。
我想要做的是在'Bus'之後替換逗號,直到'Toll'爲'?'代替。
我已經嘗試過使用Replace
,包括重載的起始位置,但它最終會用'?'替換行中的所有逗號。
嘗試1: '?'
If vstrLine(intStartPos) = "," Then
strRetVal = Replace(vstrLine(intStartPos), ",", "?")
end if
其中vstrLine
是Elker,MissB,"Bus, Taxi, Train, Ferry, Parking, Toll",800253
和intStartPos
是一個逗號的「
後的第一個實例僅返回而不是將1個逗號替換爲'?'的字符串
嘗試2:
If vstrLine(intStartPos) = "," Then
strRetVal = Replace(vstrLine, ",", "?", intStartPos)
end if
它返回與全部換成逗號字符串 '?'
使用http://www.filehelpers.com/default.html。它是免費的,並處理這一點。這裏有很多例子!另外,CSV中的引號是表示文本的一種方式,FileHelpers會處理這一點。 – dash