VB.NET csvファイルの読み込みを行う方法
VB.NET
でcsv
ファイルの読み込みを行う方法を紹介します。
カンマ区切りだけでなく、任意の区切り文字を指定したり、ダブルクォーテーションの囲いなどにも対応します。
Using parser As New FileIO.TextFieldParser(FilePath, Encoding.GetEncoding("shift_jis"))
'カンマ区切り
parser.TextFieldType = FileIO.FieldType.Delimited
parser.SetDelimiters(",")
'ダブルクォーテーション囲い
parser.HasFieldsEnclosedInQuotes = True
'フィールドの空白を削除(トリム)
parser.TrimWhiteSpace = True
'1行ずつレコードを読込
While Not parser.EndOfData
Dim record As String()
Try
record = parser.ReadFields()
Catch ex As Exception
'不正レコードの場合は次のレコード
Continue While
End Try
'csvの内容がString配列にセットされる
End While
End Using
解説
ダブルクォーテーション囲いなどを考えると自力で文字列を解析するのは大変なので、FileIO.TextFieldParser
を使用します。
第1引数に読み込むcsv
ファイルのパスを指定し、第2引数にはファイルの文字コードを指定します。
Using parser As New FileIO.TextFieldParser(ファイルパス, 文字コード)
parser
のプロパティで区切り文字やダブルクォーテーション囲いなど、読み込むcsv
ファイルのフォーマットを指定します。
parser.ReadFields()
でcsv
の内容がString
配列にセットされます。
形式が不正の場合はエラーが発生するのでTry Catch
で不正レコードかどうかを判定しています。