Bagikan melalui


Cara: Membaca dari file teks yang dibatasi-koma di Visual Basic

Objek TextFieldParser menyediakan cara untuk mengurai file teks terstruktur dengan mudah dan efisien, seperti log. Properti TextFieldType menentukan apakah itu file yang dibatasi atau file dengan bidang teks lebar-tetap.

Untuk mengurai file teks yang dibatasi koma

  1. Membuat baru TextFieldParser. Kode berikut membuat TextFieldParser bernama MyReader dan membuka file test.txt.

    Using MyReader As New Microsoft.VisualBasic.
                          FileIO.TextFieldParser(
                            "C:\TestFolder\test.txt")
    
  2. Tentukan jenis TextField dan pemisah. Kode berikut mendefinisikan properti TextFieldType sebagai Delimited dan pemisah sebagai ",".

    MyReader.TextFieldType = FileIO.FieldType.Delimited
    MyReader.SetDelimiters(",")
    
  3. Pengulangan melalui bidang dalam file. Jika ada baris yang rusak, laporkan kesalahan dan lanjutkan penguraian. Kode berikut mengulang melalui file, menampilkan setiap bidang secara bergantian dan melaporkan bidang apa pun dengan format yang salah.

    
    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. Tutup blok While dan Using dengan End While dan End Using.

        End While
    End Using
    

Contoh

Contoh ini membaca dari file 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

Pemrograman yang kuat

Kondisi berikut dapat menyebabkan pengecualian:

Lihat juga