当运行调试器,我收到以下错误,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建议的类似。 –