Wenn Debugger ausgeführt wird, bin ich die folgende Störung zu erhalten,VB.NET CSV Lesen und das Hinzufügen neuer Felder bedingt
Eine erste Chance Ausnahme des Typs ‚System.IndexOutOfRangeException‘ aufgetreten in HSL Datei Config.exe Zusätzliche Informationen: Index war außerhalb der Grenzen des Arrays. Eine nicht behandelte Ausnahme vom Typ 'System.IndexOutOfRangeException' ist in HSL File Config.exe aufgetreten. Weitere Informationen: Index befand sich außerhalb der Grenzen des Arrays. Das Programm '[14044] HSL-Datei Config.vshost.exe: Managed (v4.0.30319)' wurde mit Code 0 (0x0) beendet.
Ich habe die CSV-Datei überprüft im Laden ist in der Tat 30 Spalten lang und keine Leerzeilen. Es gibt jedoch einige leere Felder.
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)
Dank Mukul Varshney, du hast meinen Speck gerettet! tolle. kann nicht glauben, es war etwas so einfach :) – JustAnAverageSQLuser
danke für die info, aber immer fehler mit größeren datensätzen (rund 30 spalten) Eine erste chance ausnahme des typs 'System.ArgumentOutOfRangeException' aufgetreten in mscorlib.dll – JustAnAverageSQLuser
wird vorschlagen, dass Definieren Sie Felder Array mit einer erwarteten maximalen Spalten außerhalb der for-Schleife. Verwenden Sie eine variable Anzahl, um den Wert der Felder zu aktualisieren. Felder (Zähler) = Zähler "NewDate" = Zähler +1, sobald Sie einen Wert hinzufügen oder Felder als Liste deklarieren. Dies wird ähnlich dem sein, was @FloatingKiwi vorgeschlagen hat. –