运行调试器时,我收到以下错误,
HSL文件Config.exe中出现'System.IndexOutOfRangeException'类型的第一次机会异常 附加信息:索引超出了数组的范围。 HSL文件Config.exe中发生未处理的“System.IndexOutOfRangeException”类型异常 附加信息:索引超出了数组的范围。 程序'[14044] HSL文件Config.vshost.exe:Managed(v4.0.30319)'已退出,代码为0(0x0)。
我已经检查了csv数据文件,加载实际上是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)
答案 0 :(得分:1)
使用redim
If fields(5) = "4WK" Then
ReDim Preserve fields(fields.Length)
fields(6) = "NewDate"
End If
答案 1 :(得分:0)
不要将Fields
用作数组,而应将其作为列表,因为它们可以调整大小。
Dim fields = line.Split(","c).ToList()
然后你可以做
If fields(5) = "4WK" Then
fields.Add("NewDate")
End If