當運行調試器,我收到以下錯誤,VB.NET閱讀CSV和有條件地將新的領域
型「System.IndexOutOfRangeException」的第一次機會異常出現在HSL文件的Config.exe 其他信息:指數數組的邊界之外。 在HSL文件Config.exe中發生未處理的異常'System.IndexOutOfRangeException'類型 附加信息:索引超出了數組的範圍。 程序'[14044] HSL File Config.vshost.exe:Managed(v4.0.30319)'已退出,代碼爲0(0x0)。
我檢查了csv數據文件im加載實際上是30列長,沒有空白行。但有一些空白字段。
Dim FileName = tbOpen.Text
Dim fileout = tbSave.Text
Dim lines = File.ReadAllLines(FileName)
Dim output As New List(Of String)
For Each line In lines
Dim fields = line.Split(","c)
If fields(0) = "R62167" Then
ReDim Preserve fields(fields.Length)
fields(31) = "9991"
End If
If fields(0) = "R62193" Then
ReDim Preserve fields(fields.Length)
fields(32) = "1999"
End If
If fields(2) = "2249" Then
fields(2) = "0000"
End If
output.Add(String.Join(","c, fields))
Next
File.WriteAllLines(fileout, output)
謝謝Mukul Varshney,你已經保存了我的培根!驚人。不能相信它是如此簡單的:) – JustAnAverageSQLuser
感謝您的信息,但獲取較大的數據集的錯誤(約30列) 在mscorlib.dll – JustAnAverageSQLuser
發生類型'System.ArgumentOutOfRangeException'的第一個機會異常將建議您在for循環之外定義具有預期最大列數的字段數組。使用變量計數來更新字段值。 fields(counter)=「NewDate」counter = counter +1,一旦你添加一個值,或者將字段聲明爲List。這與@FloatingKiwi建議的類似。 –