開発環境:
Windows10 Pro
Microsoft Visual Studio Community 2019
開発言語:
B.NET FrameWork4.7.2
Microsoft.VisualBasic.FileIO.TextFieldParserを使うと簡素なコードでCSVの読み込み処理を書くことができます。
VB専用ですが、C#でもUsingで指定しておけば使用できます。
VBの場合はFileIOからの指定でOKです。
例)
'【DATAテーブルの作成】
Dim dtTable As New DataTable
'【ファイルをループしてテーブルにSetする】
Using textParser As New FileIO.TextFieldParser("ファイル名", System.Text.Encoding.GetEncoding("Shift_JIS"))
'CSVファイル
textParser.TextFieldType = FileIO.FieldType.Delimited
'区切り文字
textParser.SetDelimiters(",")
'ファイルの終端までループ
Dim iCnt As Integer = 0
While Not textParser.EndOfData
'1行読み込み
Dim Dtrow As String() = textParser.ReadFields()
Dim ColCnt = 0
If iCnt = 0 Then
dtTable.Clear()
For Each Col As String In Dtrow
dtTable.Columns.Add(Col, GetType(System.String))
Next
Else
Dim mRow As DataRow = dtTable.NewRow
Dim rCnt As Integer = 0
For Each Col As String In Dtrow
mRow.Item(rCnt) = Col
rCnt += 1
Next
dtTable.Rows.Add(mRow)
End If
iCnt += 1
End While
End Using
例ではDataTableに読み込んでいます。
1度目のループでは項目名を所得して、
2度目以降のループでデータを読み込んでいます。
※1行目が項目名の行である必要があります。