Freigeben über


Vorgehensweise: 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 durch Trennzeichen getrennte Datei oder eine mit Textfeldern mit fester Breite handelt.

So analysieren Sie eine durch Trennzeichen getrennte Textdatei

  1. Erstellen Sie ein neues TextFieldParser-Element. Mit dem folgenden Code wird der TextFieldParser mit dem Namen MyReader erstellt und die Datei test.txt geöffnet.

    Using MyReader As New Microsoft.VisualBasic.
                          FileIO.TextFieldParser(
                            "C:\TestFolder\test.txt")
    
  2. Definieren Sie den TextField Typ und das Trennzeichen. Der folgende Code definiert die TextFieldType Eigenschaft als Delimited und das Trennzeichen als ",".

    MyReader.TextFieldType = FileIO.FieldType.Delimited
    MyReader.SetDelimiters(",")
    
  3. Durchlaufen Sie die Felder in der Datei. Wenn Zeilen beschädigt sind, melden Sie einen Fehler, und fahren Sie mit der Analyse fort. Der folgende Code durchläuft die Datei und zeigt jedes Feld wiederum an und meldet alle Felder, die falsch 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
    
  4. Schließen Sie die While Und Using Blöcke mit End While und End 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 zu einer Ausnahme führen:

  • Eine Zeile kann nicht mit dem angegebenen Format (MalformedLineException) analysiert werden. Die Ausnahmemeldung gibt die Zeile an, die die Ausnahme verursacht, während der ErrorLine Eigenschaft der in der Zeile enthaltene Text zugewiesen ist.

  • Die angegebene Datei ist nicht vorhanden (FileNotFoundException).

  • Eine teilweise vertrauenswürdige Situation, in der der Benutzer nicht über ausreichende Berechtigungen für den Zugriff auf die Datei verfügt. (SecurityException).

  • Der Pfad ist zu lang (PathTooLongException).

  • Der Benutzer verfügt nicht über ausreichende Berechtigungen für den Zugriff auf die Datei (UnauthorizedAccessException).

Siehe auch