Gewusst wie: Lesen aus durch Kommas getrennten Textdateien in Visual Basic
Das TextFieldParser
-Objekt bietet eine Möglichkeit, strukturierte Textdateien wie Protokolle einfach und effizient zu analysieren. Die TextFieldType
-Eigenschaft definiert, ob es sich um eine Datei mit Trennzeichen oder mit Textfeldern fester Breite handelt.
Analysieren einer durch Trennzeichen getrennten Textdatei
Erstellen Sie ein neues
TextFieldParser
-Element. Der folgende Code erstellt denTextFieldParser
namensMyReader
und öffnet die Dateitest.txt
.Using MyReader As New Microsoft.VisualBasic. FileIO.TextFieldParser( "C:\TestFolder\test.txt")
Definieren Sie den
TextField
-Typ und das Trennzeichen. Der folgende Code definiert dieTextFieldType
-Eigenschaft alsDelimited
und das Trennzeichen als „,“.MyReader.TextFieldType = FileIO.FieldType.Delimited MyReader.SetDelimiters(",")
Führen Sie eine Iteration auf die Felder in der Datei aus. Wenn Zeilen fehlerhaft sind, einen Fehler melden und die Analyse fortsetzen. Der folgende Code durchläuft die Datei, zeigt der Reihe nach jedes Feld an und meldet alle Felder, die nicht korrekt formatiert sind.
Dim currentRow As String() While Not MyReader.EndOfData Try currentRow = MyReader.ReadFields() Dim currentField As String For Each currentField In currentRow MsgBox(currentField) Next Catch ex As Microsoft.VisualBasic. FileIO.MalformedLineException MsgBox("Line " & ex.Message & "is not valid and will be skipped.") End Try
Schließen Sie die Blöcke
While
undUsing
mitEnd While
undEnd Using
.End While End Using
Beispiel
In diesem Beispiel wird aus der Datei test.txt
gelesen.
Using MyReader As New Microsoft.VisualBasic.
FileIO.TextFieldParser(
"C:\TestFolder\test.txt")
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(",")
Dim currentRow As String()
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
MsgBox(currentField)
Next
Catch ex As Microsoft.VisualBasic.
FileIO.MalformedLineException
MsgBox("Line " & ex.Message &
"is not valid and will be skipped.")
End Try
End While
End Using
Stabile Programmierung
Die folgenden Bedingungen können einen Ausnahmefehler verursachen:
Eine Zeile kann nicht mit dem angegebenen Format analysiert werden (MalformedLineException). Die Ausnahmemeldung gibt die Zeile an, die die Ausnahme verursacht, während der in der Zeile enthaltene Text der ErrorLine-Eigenschaft zugewiesen wird.
Die angegebene Datei ist nicht vorhanden (FileNotFoundException).
Eine teilweise vertrauenswürdige Situation, in der der Benutzer nicht über ausreichende Berechtigungen für den Dateizugriff verfügt. (SecurityException).
Der Pfad ist zu lang (PathTooLongException).
Der Benutzer hat keine ausreichende Berechtigungen für den Dateizugriff (UnauthorizedAccessException).
Weitere Informationen
- Microsoft.VisualBasic.FileIO.TextFieldParser
- Vorgehensweise: Lesen aus Textdateien mit fester Breite
- Vorgehensweise: Lesen aus Textdateien mit mehreren Formaten
- Analysieren von Textdateien mit dem TextFieldParser-Objekt
- Exemplarische Vorgehensweise: Bearbeiten von Dateien und Verzeichnissen in Visual Basic
- Problembehandlung: Lesen aus und Schreiben in Textdateien