Udostępnij za pośrednictwem


Porady: odczyt z rozdzielonych przecinkami plików testowych w Visual Basic

TextFieldParser Obiektu daje możliwość łatwego i efektywnego analizować pliki tekstowe strukturalne, takie jak dzienniki.TextFieldType Właściwość określa, czy jest plik rozdzielany lub o stałej szerokości pól tekstu.

Rozdzielić przecinkami rozdzielanego pliku tekstowego

  1. Utwórz nowy TextFieldParser.Poniższy kod tworzy TextFieldParser o nazwie MyReader i otwiera plik test.txt.

    Using MyReader As New Microsoft.VisualBasic.
                          FileIO.TextFieldParser(
                            "C:\TestFolder\test.txt")
    
  2. Definiowanie TextField typu i ogranicznika.Poniższy kod definiuje TextFieldType właściwości jako Delimited i ogranicznika jako ",".

    MyReader.TextFieldType = FileIO.FieldType.Delimited
    MyReader.SetDelimiters(",")
    
  3. W pętli pól w pliku.Jeśli wszystkie wiersze są uszkodzone, Zgłoś błąd i kontynuować analizowania.Następujący kod w pętli przegląda plik z kolei wyświetlanie każdego pola i raportowania żadnych pól, które są niepoprawnie sformatowany.

    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. Close the While and Using blocks with End While and End Using.

    End While 
    End Using
    

Przykład

W tym przykładzie odczytuje z pliku test.txt.

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

Stabilne programowanie

Następujące warunki, może spowodować wyjątek:

  • Wiersza nie można analizować przy użyciu określonego formatu (MalformedLineException).Komunikat wyjątku Określa wiersz, powodując wyjątek, podczas gdy ErrorLine właściwość jest przypisany tekst znajdujący się w wierszu.

  • Określony plik nie istnieje (FileNotFoundException).

  • Sytuacja częściowego zaufania, użytkownik nie ma wystarczających uprawnień do uzyskania dostępu do pliku.(SecurityException).

  • Ścieżka jest zbyt długa (PathTooLongException).

  • Użytkownik nie ma wystarczających uprawnień do uzyskania dostępu do pliku (UnauthorizedAccessException).

Zobacz też

Zadania

Porady: odczyt z plików testowych o stałej szerokości w Visual Basic

Porady: odczyt z plików tekstowych w wielu formatach w Visual Basic

Wskazówki: manipulowanie plikami i katalogami w Visual Basic

Rozwiązywanie problemów: odczytywanie z oraz zapisywanie w plikach tekstowych (Visual Basic)

Rozwiązywanie problemów z wyjątkami: Microsoft.VisualBasic.FileIO.TextFieldParser.MalformedLineException

Informacje

TextFieldParser

Koncepcje

Analizowanie plików tekstowych za pomocą obiektu TextFieldParser (Visual Basic)