物件 TextFieldParser 可讓您剖析和處理結構化為定寬分隔欄位的非常大的檔案,例如記錄檔案或舊版資料庫資訊。 剖析含有 TextFieldParser 的文本檔類似於逐個遍歷文字檔,而擷取文字欄位的剖析方法則類似於用於標記分隔字串的字串操作方法。
剖析不同類型的文字檔
文字檔可能有各種寬度的欄位,並以逗號或製表符空格等字元分隔。 定義 TextFieldType 和分隔符,如下列範例所示,它會使用 SetDelimiters 方法來定義以製表符分隔的文字檔:
testReader.SetDelimiters(vbTab)
其他文本檔可能會有固定的欄位寬度。 在這種情況下,您必須將 定義為 TextFieldTypeFixedWidth ,並定義每個欄位的寬度,如下列範例所示。 這個範例使用 SetFieldWidths 方法來定義文字的數據行:第一欄寬 5 個字元,第二個是 10,第三個是 11,第四個是可變寬度。
testReader.SetFieldWidths(5, 10, 11, -1)
testReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth
定義格式之後,您就可以使用 ReadFields 方法來迴圈處理檔案,進而處理每一行。
如果欄位不符合指定的格式, MalformedLineException 則會擲回例外狀況。 擲回這類例外狀況時, ErrorLine 和 ErrorLineNumber 屬性會保存造成例外狀況的文字以及該文字的行號。
剖析具有多種格式的檔案
物件的 PeekChars 方法 TextFieldParser 可用來在讀取之前檢查每個欄位,讓您定義欄位的多種格式,並據以做出反應。 如需詳細資訊,請參閱 如何:從具有多種格式的文字文件讀取。