使用 TextFieldParser 物件剖析文字檔 (Visual Basic)

TextFieldParser 物件可讓您剖析和處理非常大的檔案,以文字分隔欄寬為結構,例如記錄檔或舊版資料庫資訊。 使用 TextFieldParser 剖析文字檔案類似逐一查看文字檔案,而擷取文字欄位的剖析方法則類似用來語彙基元化分隔字串的字串操作方法。

剖析不同型別的文字檔

文字檔欄位可有各種寬度,以逗點或定位點空格等字元分隔。 定義 TextFieldType 和分隔符號,如下例使用 SetDelimiters 方法來定義定位點分隔的文字檔︰

testReader.SetDelimiters(vbTab)

其他文字檔可能有固定的欄位寬度。 在這種情況下,您需要將 TextFieldType 定義為 FixedWidth,並定義每個欄位的寬度,如下例所示。 本例使用 SetFieldWidths 方法來定義文字資料行︰第一個資料行是 5 個字元寬、第二個 10 個字元寬、第三個 11 個字元寬,第四個則為可變寬度。

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

格式一旦定義,您就可以使用 ReadFields 方法循環往復處理檔案中的每一行。

如果欄位不符合指定的格式,將會擲回 MalformedLineException 例外狀況。 擲回這類例外狀況時,ErrorLineErrorLineNumber 屬性會保留造成例外狀況及文字以及該文字的行號。

剖析有多種格式的檔案

TextFieldParser 物件的 PeekChars 方法可用來先檢查,然後再讀取每個欄位,讓您定義多種欄位格式,並據以採取動作。 如需詳細資訊,請參閱如何:讀取多種格式的文字檔

另請參閱