TextFieldParser nesnesiyle metin dosyalarını ayrıştırma (Visual Basic)

TextFieldParser nesnesi, günlük dosyaları veya eski veritabanı bilgileri gibi sınırlandırılmış genişlikte metin sütunları olarak yapılandırılmış çok büyük dosyaları ayrıştırmanıza ve işlemenize olanak tanır. Metin dosyasını ile TextFieldParser ayrıştırmak bir metin dosyası üzerinde yinelemeye benzerken, metin alanlarını ayıklamak için ayrıştırma yöntemi, sınırlandırılmış dizeleri belirteç haline getirmek için kullanılan dize işleme yöntemlerine benzer.

Farklı metin dosyası türlerini ayrıştırma

Metin dosyalarında virgül veya sekme alanı gibi bir karakterle ayrılmış çeşitli genişlikte alanlar olabilir. Aşağıdaki örnekte olduğu gibi, sekmeyle sınırlandırılmış bir metin dosyası tanımlamak için yöntemini kullanan SetDelimiters ve sınırlayıcıyı tanımlayınTextFieldType:

testReader.SetDelimiters(vbTab)

Diğer metin dosyaları sabit alan genişliklerine sahip olabilir. Bu gibi durumlarda, aşağıdaki örnekte olduğu gibi olarak tanımlamanız ve her alanın genişliklerini tanımlamanız gerekir TextFieldTypeFixedWidth . Bu örnekte, metin sütunlarını tanımlamak için yöntemi kullanılır SetFieldWidths : ilk sütun 5 karakter genişliğinde, ikincisi 10, üçüncüsü 11 ve dördüncüsü değişken genişliktedir.

testReader.SetFieldWidths(5, 10, 11, -1)
testReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth

Biçim tanımlandıktan sonra, her satırı sırayla işlemek için yöntemini kullanarak ReadFields dosyada döngü yapabilirsiniz.

Bir alan belirtilen biçimle eşleşmiyorsa, bir MalformedLineException özel durum oluşturulur. Bu tür özel durumlar oluşturulduğunda ve ErrorLineNumber özellikleri, ErrorLine özel duruma ve bu metnin satır numarasına neden olan metni tutar.

Dosyaları birden çok biçimle ayrıştırma

PeekChars Nesnenin TextFieldParser yöntemi, her alanı okumadan önce denetlemek için kullanılabilir ve alanlar için birden çok biçim tanımlamanıza ve buna göre tepki vermenizi sağlar. Daha fazla bilgi için bkz . Nasıl yapılır: Birden Çok Biçimli Metin Dosyalarından Okuma.

Ayrıca bkz.