Lesen Sie nur bestimmte Felder aus der CSV-Datei in vb.net
Ich habe diesen code zu Lesen, eine CVS-Datei. Er liest jede Zeile, devides jede Zeile mit Trennzeichen ',' gespeichert und das Feld Werte in array '"strline" ()' .
Wie extrahiere ich nur die gewünschten Felder aus der CSV-Datei?
Zum Beispiel, wenn ich eine CSV-Datei haben, wie
Typ,Gruppe,Nein,die Reihenfolge Nein,Keine Zeile,Datum (newline)
0,Admin,3,345678,1,26052010 (newline)
1 Mitarbeiter,5,78654,3,26052010
Ich Brauche nur den Wert der Gruppe Spalten,Reihenfolge, No und Datum.
Vielen Dank im Voraus für alle Ideen.
Dim myStream As StreamReader = Nothing
' Hold the Parsed Data
Dim strlines() As String
Dim strline() As String
Try
myStream = File.OpenText(OpenFile.FileName)
If (myStream IsNot Nothing) Then
' Hold the amount of lines already read in a 'counter-variable'
Dim placeholder As Integer = 0
strlines = myStream.ReadToEnd().Split(Environment.NewLine)
Do While strlines.Length <> -1 ' Is -1 when no data exists on the next line of the CSV file
strline = strlines(placeholder).Split(",")
placeholder += 1
Loop
End If
Catch ex As Exception
LogErrorException(ex)
Finally
If (myStream IsNot Nothing) Then
myStream.Close()
End If
End Try
Du musst angemeldet sein, um einen Kommentar abzugeben.
1) NICHT VERWENDEN
String.Split
!!CSV-Daten enthalten kann, Kommata, z.B.
Ebenfalls wie oben würden Sie brauchen, zu behandeln, zitiert Felder etc... Siehe CSV-Info für mehr details.
2) Check-out TextFieldParser - es hadles alle diese Art der Sache.
Zurecht, die Vielzahl von verschiedenen entgeht, können Sie nicht mit string.split...
Probe aus: http://msdn.microsoft.com/en-us/library/cakac7e6.aspx
Den
MyReader.ReadFields()
Teil, erhalten Sie ein array von strings, von dort aus müssen Sie den index benutzen etc...PK 🙂
Vielleicht statt nur den Import ausgewählte Felder, die Sie importieren alles, dann verwenden Sie nur die diejenigen, die Sie brauchen.