使用 TextFieldParser 物件剖析文字檔 (Visual Basic)
TextFieldParser 物件可讓您剖析和處理非常大的檔案 (而此種檔案的結構為以寬度分隔的文字資料行),例如記錄檔或舊版資料庫資訊。 以 TextFieldParser 剖析文字檔類似於逐一查看文字檔內容,而用於擷取文字欄位的剖析方法,則類似用於語彙基元化已分隔字串的字串操作方法。
剖析不同類型的文字檔
文字檔可能會具有各種寬度的欄位,並以字元分隔,例如逗號或定位鍵空格。 請定義 TextFieldType 和分隔符號 (Delimiter),如以下範例所示,這個範例會使用 SetDelimiters 方法,定義以定位鍵分隔的文字檔:
testReader.SetDelimiters(vbTab)
其他的文字檔可能會具有固定寬度的欄位。 在這種情況下,您必須將 TextFieldType 定義為 FixedWidth,並定義每個欄位的寬度,如以下範例所示。 這個範例會使用 SetFieldWidths 方法定義文字的資料行:第一個資料行為 5 個字元寬、第二個為 10 個字元寬、第三個為 11 個字元寬,而第四個資料行的寬度則是可變動的。
testReader.SetFieldWidths(5, 10, 11, -1)
testReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth
定義格式之後,您就可以在檔案上執行迴圈 (Loop),使用 ReadFields 方法依序處理每一行。
如果欄位和指定的格式不相符,則會擲回 MalformedLineException 例外狀況。 擲回這類例外狀況時,ErrorLine 和 ErrorLineNumber 屬性會保留造成例外狀況的文字和該文字的行號。
剖析具有多種格式的檔案
開始讀取欄位之前,可以先用 TextFieldParser 物件的 PeekChars 方法進行檢查,這讓您可以為欄位定義多種格式,據以做出適當回應。 如需詳細資訊,請參閱 如何:在 Visual Basic 中以多種格式從文字檔讀取。
請參閱
工作
疑難排解例外狀況:Microsoft.VisualBasic.FileIO.TextFieldParser.MalformedLineException