共用方式為


使用 TextFieldParser 物件剖析文字檔

更新: 2008 年 7 月

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 方法進行檢查,這讓您可以為欄位定義多種格式,據以做出適當回應。如需詳細資訊,請參閱 HOW TO:在 Visual Basic 中以多種格式從文字檔讀取

請參閱

工作

疑難排解例外狀況:Microsoft.VisualBasic.FileIO.TextFieldParser.MalformedLineException

參考

My.Computer.FileSystem.OpenTextFieldParser 方法

TextFieldParser 物件

TextFieldParser.PeekChars 方法

TextFieldParser.ReadFields 方法

TextFieldParser.CommentTokens 屬性

TextFieldParser.Delimiters 屬性

TextFieldParser.ErrorLine 屬性

TextFieldParser.ErrorLineNumber 屬性

TextFieldParser.FieldWidths 屬性

TextFieldParser.HasFieldsEnclosedInQuotes 屬性

TextFieldParser.LineNumber 屬性

TextFieldParser.TextFieldType 屬性

TextFieldParser.TrimWhiteSpace 屬性

TextFieldParser.SetDelimiters 方法

TextFieldParser.SetFieldWidths 方法

變更記錄

日期

記錄

原因

2008 年 7 月

更新 SetFieldWidths 程式碼範例和註解。

客戶回函。