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 のプロパティは、必要に応じて正しく設定する必要があります。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
クラス : TextFieldParser
アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll 内)
アクセス許可
必要なアクセス許可を次に示します。
アクセス許可 |
説明 |
---|---|
関連する列挙値 : Unrestricted。 |
|
関連する列挙値 : ControlEvidence。 |
詳細については、「コード アクセス セキュリティ」および「アクセス許可の要求」を参照してください。
参照
処理手順
方法 : Visual Basic でコンマ区切りのテキスト ファイルを読み取る
方法 : Visual Basic で固定幅のテキスト ファイルを読み取る
方法 : Visual Basic で複数の書式を持つテキスト ファイルを読み取る
概念
TextFieldParser オブジェクトによるテキスト ファイルの解析
参照
TextFieldParser.TextFieldType プロパティ
TextFieldParser.FieldWidths プロパティ