Cara: membaca dari file teks lebar tetap di Visual Basic
Objek TextFieldParser
menyediakan cara untuk mengurai file teks terstruktur dengan mudah dan efisien, seperti log.
Properti TextFieldType
menentukan apakah file yang diurai adalah file yang dibatasi atau yang memiliki bidang teks lebar tetap. Dalam file teks lebar tetap, bidang di akhir dapat memiliki lebar variabel. Untuk menentukan bahwa bidang di akhir memiliki lebar variabel, tentukan agar memiliki lebar kurang dari atau sama dengan nol.
Untuk mengurai file teks lebar tetap
Membuat baru
TextFieldParser
. Kode berikut membuatTextFieldParser
bernamaReader
dan membuka filetest.log
.Using Reader As New Microsoft.VisualBasic. FileIO.TextFieldParser("C:\TestFolder\test.log")
Tentukan properti
TextFieldType
sebagai manaFixedWidth
, menentukan lebar dan format. Kode berikut menentukan kolom teks; yang pertama dengan lebar 5 karakter, 10 kedua, 11 ketiga, dan keempat adalah lebar variabel.Reader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth Reader.SetFieldWidths(5, 10, 11, -1)
Pengulangan melalui bidang dalam file. Jika ada baris yang rusak, laporkan kesalahan dan lanjutkan penguraian.
Dim currentRow As String() While Not Reader.EndOfData Try currentRow = Reader.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
Tutup blok
While
danUsing
denganEnd While
danEnd Using
.End While End Using
Contoh
Contoh ini membaca dari file test.log
.
Using Reader As New Microsoft.VisualBasic.FileIO.
TextFieldParser("C:\TestFolder\test.log")
Reader.TextFieldType =
Microsoft.VisualBasic.FileIO.FieldType.FixedWidth
Reader.SetFieldWidths(5, 10, 11, -1)
Dim currentRow As String()
While Not Reader.EndOfData
Try
currentRow = Reader.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:
Baris tidak dapat diurai menggunakan format yang ditentukan (MalformedLineException). Pesan pengecualian menentukan baris yang menyebabkan pengecualian, sementara properti ErrorLine ditetapkan ke teks yang terkandung dalam baris.
File yang ditentukan tidak ada (FileNotFoundException).
Situasi kepercayaan parsial di mana pengguna tidak memiliki izin yang memadai untuk mengakses file. (SecurityException).
Jalurnya terlalu panjang (PathTooLongException).
Agen tidak memiliki cukup izin untuk membuka file (UnauthorizedAccessException).
Lihat juga
- Microsoft.VisualBasic.FileIO.TextFieldParser
- Cara: Membaca dari File Teks Comma-Delimited
- Cara: Membaca Dari File Teks dengan Berbagai Format
- Mengurai File Teks dengan Objek TextFieldParser
- Panduan: Memanipulasi File dan Direktori di Visual Basic
- Pemecahan Masalah: Membaca dari dan Menulis ke File Teks
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk