TextFieldParser.ReadFields 方法

定義

讀取目前行上的所有欄位,將它們傳回為字串陣列,並將游標前進至包含資料的下一行。

public:
 cli::array <System::String ^> ^ ReadFields();
public string[]? ReadFields ();
public string[] ReadFields ();
member this.ReadFields : unit -> string[]
Public Function ReadFields () As String()

傳回

String[]

字串陣列,包含目前行的欄位值。

例外狀況

欄位無法使用指定的格式進行剖析。

範例

這個範例會 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

備註

為了允許使用者以多種格式剖析文字檔,ReadFields此方法會在每次呼叫時檢查、 DelimitersFieldWidths的值TextFieldType。 用戶必須適當地正確設定 TextFieldTypeFieldWidthsDelimiters 屬性。 如果 TextFieldType 設定為 Delimited,且 Delimiters 未設定,或者 如果 TextFieldType 設定為 FixedWidthFieldWidths,則會擲回例外狀況。

如果 ReadFields 遇到空白行,則會略過它們,並傳回下一個非空白行。

ReadFields如果方法無法剖析目前行,則會引發例外狀況,而且不會移至下一行。 這可讓您的應用程式再次嘗試剖析行。

下表列出涉及 ReadFields 方法的工作範例。

收件者 請參閱
從分隔檔案讀取 作法:從逗號分隔文字檔讀取
從固定寬度檔案讀取 作法:從固定寬度的文字檔讀取

適用於

另請參閱