Aracılığıyla paylaş


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. "TextFieldType ve sınırlayıcıyı tanımlayın, tıpkı aşağıdaki örnekte olduğu gibi; bu örnek, sekmeyle sınırlandırılmış bir metin dosyasını tanımlamak için SetDelimiters yöntemini kullanır."

testReader.SetDelimiters(vbTab)

Diğer metin dosyaları sabit alan genişliklerine sahip olabilir. Bu gibi durumlarda, TextFieldType etiketini FixedWidth olarak tanımlamanız ve her alanın genişliklerini aşağıdaki örnekte gösterildiği gibi tanımlamanız gerekir. 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, dosyada her satırı sırayla işlemek için ReadFields yöntemini kullanarak 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, ErrorLine ve ErrorLineNumber özellikleri, özel duruma neden olan metni ve bu metnin satır numarasını 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 bakınız