My.Computer.FileSystem.OpenTextFieldParser メソッド
更新 : 2007 年 11 月
OpenTextFieldParser メソッドを使用すると、TextFieldParser オブジェクトを作成できます。このオブジェクトは、ログなどの構造化されたテキスト ファイルを容易かつ効率的に解析できるようにします。TextFieldParser オブジェクトは、区切り記号入りファイルと固定長ファイルの両方を読み取るときに使用できます。
' Usage
Dim value As TextFieldParser = My.Computer.FileSystem.OpenTextFieldParser(file)
Dim value As TextFieldParser = My.Computer.FileSystem.OpenTextFieldParser(file ,delimiters)
Dim value As TextFieldParser = My.Computer.FileSystem.OpenTextFieldParser(file ,fieldWidths)
' Declaration
Public Function OpenTextFieldParser( _
ByVal file As String _
) As TextFieldParser
' -or-
Public Function OpenTextFieldParser( _
ByVal file As String, _
ByVal delimiters As String() _
) As TextFieldParser
' -or-
Public Function OpenTextFieldParser( _
ByVal file As String, _
ByVal fieldWidths As Integer() _
) As TextFieldParser
パラメータ
file
String です。TextFieldParser で開くファイルを指定します。必ず指定します。delimiters
String() です。フィールドの区切り記号を指定します。必ず指定します。fieldWidths
Integer() です。フィールドの幅を指定します。必ず指定します。
戻り値
例外
次の条件を満たす場合は、例外が発生する可能性があります。
パスが無効である。つまり、パスが長さ 0 の文字列である、パスに空白だけが含まれている、パスに無効な文字が含まれている、またはパスがデバイス パスである (\\.\ で始まる) (ArgumentException)。
ファイル名の末尾に後続のスラッシュが付いている (ArgumentException)。
パスが Nothing であるため、有効ではない (ArgumentNullException)。
指定のファイルが存在しない (FileNotFoundException)。
指定のファイルが使用中である (IOException)。
パスがシステムで定義されている最大長を超えている (PathTooLongException)。
パス内のファイル名またはディレクトリ名にコロン (:) が含まれているか、形式が無効である (NotSupportedException)。
ユーザーがパスを表示するのに必要なアクセス許可を持っていない (SecurityException)。
行を指定の形式で解析できない (MalformedLineException)。例外メッセージではこの行が例外の原因とされ、TextFieldParser.ErrorLine プロパティにこの行内のテキストが割り当てられる。
ユーザーがファイルにアクセスするのに必要なアクセス許可を持っていない (UnauthorizedAccessException)。
処理手順
My.Computer.FileSystem.OpenTextFieldParser メソッドに関連するタスクの例を次の表に示します。
目的 |
参照項目 |
---|---|
区切り記号で区切られたテキスト ファイルから読み込む |
|
固定幅のテキスト ファイルから読み込む |
|
複数の形式を持つテキスト ファイルから読み込む |
使用例
この例では、reader という TextFieldParser を開き、それを使用して C:\TestFolder1\Test1.txt から読み込みを行います。
Dim reader As Microsoft.VisualBasic.FileIO.TextFieldParser
reader = My.Computer.FileSystem.OpenTextFieldParser _
("C:\TestFolder1\test1.txt")
reader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
reader.delimiters = New String() {","}
Dim currentRow As String()
While Not reader.EndOfData
Try
currentRow = reader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
MsgBox(currentField)
Next
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("Line " & ex.Message & _
"is not valid and will be skipped.")
End Try
End While
必要条件
名前空間 : Microsoft.VisualBasic.MyServices
クラス : FileSystemProxy (FileSystem へのアクセスを可能にします)
アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll 内)
プロジェクトの種類ごとの可用性
プロジェクトの種類 |
可用性 |
---|---|
Windows アプリケーション |
可 |
クラス ライブラリ |
可 |
コンソール アプリケーション |
可 |
Windows コントロール ライブラリ |
可 |
Web コントロール ライブラリ |
可 |
Windows サービス |
可 |
Web サイト |
可 |
アクセス許可
次のアクセス許可が必要です。
アクセス許可 |
説明 |
---|---|
ファイルとフォルダへのアクセス許可を制御します。関連する列挙値 : Unrestricted。 |
|
コードに適用される一連のセキュリティ アクセス許可を表します。関連する列挙値 : ControlEvidence。 |
詳細については、「コード アクセス セキュリティ」および「アクセス許可の要求」を参照してください。
参照
処理手順
方法 : Visual Basic でテキスト ファイルを読み取る
方法 : Visual Basic でコンマ区切りのテキスト ファイルを読み取る
方法 : Visual Basic で複数の書式を持つテキスト ファイルを読み取る
概念
TextFieldParser オブジェクトによるテキスト ファイルの解析