Nasıl yapılır: Visual Basic'te virgülle ayrılmış metin dosyalarından okuma
TextFieldParser
nesnesi, günlükler gibi yapılandırılmış metin dosyalarını kolayca ve verimli bir şekilde ayrıştırmak için bir yol sağlar. özelliği, TextFieldType
sınırlandırılmış bir dosya mı yoksa sabit genişlikli metin alanları olan bir dosya mı olduğunu tanımlar.
Virgülle ayrılmış metin dosyasını ayrıştırmak için
Yeni
TextFieldParser
bir oluşturun. Aşağıdaki kod adlıMyReader
öğesiniTextFieldParser
oluşturur ve dosyasınıtest.txt
açar.Using MyReader As New Microsoft.VisualBasic. FileIO.TextFieldParser( "C:\TestFolder\test.txt")
Türü ve sınırlayıcıyı
TextField
tanımlayın. Aşağıdaki kod özelliği olarakDelimited
ve sınırlayıcıyı "," olarak tanımlarTextFieldType
.MyReader.TextFieldType = FileIO.FieldType.Delimited MyReader.SetDelimiters(",")
Dosyadaki alanlarda döngü yapın. Herhangi bir satır bozuksa bir hata bildirin ve ayrıştırma işlemine devam edin. Aşağıdaki kod, dosyada döngü yaparak her alanı sırayla görüntüler ve yanlış biçimlendirilmiş alanları bildirir.
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
While
ve ile veUsing
bloklarınıEnd While
End Using
kapatın.End While End Using
Örnek
Bu örnek dosyasından test.txt
okur.
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
Sağlam programlama
Aşağıdaki koşullar özel bir duruma neden olabilir:
Bir satır, belirtilen biçim (MalformedLineException ) kullanılarak ayrıştırılamaz. Özel durum iletisi özel duruma neden olan satırı belirtirken ErrorLine , özelliğe satırda yer alan metin atanır.
Belirtilen dosya yok (FileNotFoundException ).
Kullanıcının dosyaya erişmek için yeterli izinlere sahip olmadığı kısmi güven durumu. (SecurityException).
Yol çok uzun (PathTooLongException).
Kullanıcının dosyaya (UnauthorizedAccessException ) erişmek için yeterli izinleri yok.
Ayrıca bkz.
- Microsoft.VisualBasic.FileIO.TextFieldParser
- Nasıl Yapılır: Sabit Genişlikli Metin Dosyalarından Okuma
- Nasıl Yapılır: Birden Çok Biçimli Metin Dosyalarından Okuma
- TextFieldParser Nesnesiyle Metin Dosyalarını Ayrıştırma
- İzlenecek yol: Visual Basic'te Dosyaları ve Dizinleri Düzenleme
- Sorun Giderme: Metin Dosyalarını Okuma ve Yazma
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin