TextFieldParser.ReadFields 方法
更新:2007 年 11 月
讀取目前這一行上的所有欄位,再將它們當成字串陣列傳回,然後將游標向前移到含有資料的下一行。
' Usage
Dim value As String() = TextFieldParserObject.ReadFields()
' Declaration
Public Function ReadFields() As String()
傳回值
String ().
例外狀況
下列條件可能造成擲回例外狀況:
- 欄位無法使用指定的格式進行剖析 (MalformedLineException)。
備註
為了讓使用者能夠剖析多種格式的文字檔,每次呼叫 ReadFields 方法時,此方法便會檢查 TextFieldType、Delimiters 和 FieldWidths 的值,查看是否已指定它們。使用者必須適當且正確地設定 TextFieldType 和 FieldWidths 或 Delimiters 屬性 (Property)。如果將 TextFieldType 設定為 Delimited,卻未設定 Delimiters,或者將 TextFieldType 設定為 FixedWidth,卻未設定 FieldWidths,則會擲回例外狀況。
如果 ReadFields 遇到空白行,便會略過它們,並傳回下一個非空白行。
注意事項: |
---|
如果 ReadFields 方法無法剖析目前這一行,它會引發例外狀況,而且不會移至下一行。這可以讓應用程式再次嘗試剖析該行。 |
工作
下表列出包含 ReadFields 方法的工作範例。
若要 |
請參閱 |
---|---|
從有分隔符號的檔案讀取。 |
|
從固定寬度的檔案讀取 |
範例
此範例會使用 ReadFields 方法讀取 ParserText.txt 檔案,然後將欄位寫入 Testfile.txt。
Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\ParserText.txt")
MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
MyReader.Delimiters = New String() {","}
Dim currentRow As String()
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
For Each currentField As String In currentRow
My.Computer.FileSystem.WriteAllText _
("C://testfile.txt", currentField, True)
Next
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("Line " & ex.Message & " is invalid. Skipping")
End Try
End While
End Using
需求
命名空間:Microsoft.VisualBasic.FileIO
組件:Visual Basic 執行階段程式庫 (在 Microsoft.VisualBasic.dll 中)
使用權限
下列使用權限是必要的:
使用權限 |
描述 |
---|---|
關聯的列舉型別:Unrestricted。 |
|
關聯的列舉型別:ControlEvidence。 |
請參閱
工作
HOW TO:在 Visual Basic 中從逗號分隔文字檔讀取
HOW TO:在 Visual Basic 中從固定寬度的文字檔讀取
HOW TO:在 Visual Basic 中以多種格式從文字檔讀取
概念
參考
TextFieldParser.TextFieldType 屬性