ファイルダイアログ表示
vb.net
Dim ofd As New OpenFileDialog()
'はじめに表示されるフォルダを指定する
'指定しない(空の文字列)の時は、現在のディレクトリが表示される
ofd.InitialDirectory = "C:\"
'[ファイルの種類]に表示される選択肢を指定する
ofd.Filter = "CSV ファイル|*.csv|すべてのファイル(*.*)|*.*"
'今回は、先ほど設定したフィルターの "CSV ファイル" が選択された状態でダイアログが開くようにします。
ofd.FilterIndex = 1
'タイトルを設定する
ofd.Title = "開くファイルを選択してください"
'ダイアログを表示する
If ofd.ShowDialog() = DialogResult.OK Then
'OKボタンがクリックされたとき、選択されたファイル名を表示する
Console.WriteLine(ofd.FileName)
End If
CSVファイルの読み込み(C#でも利用可)
TextFieldParserクラスはMicrosoft.VisualBasic.FileIO名前空間にあるので、まずはMicrosoft.VisualBasicアセンブリへの参照を追加しておきます。
vb.net
Imports System.Text
Imports Microsoft.VisualBasic.FileIO
Module Module1
Sub Main()
Using parser As New TextFieldParser("C:\work\test.csv",
Encoding.GetEncoding("Shift_JIS"))
' カンマ区切りの文字を指定
parser.TextFieldType = FieldType.Delimited 'フィールドが区切り形式であることを示します。
parser.SetDelimiters(",") '区切り文字が(",")であることを示します。
' フィールドが引用符で囲まれているか
parser.HasFieldsEnclosedInQuotes = True
' フィールドの空白トリム設定
' フィールド前後の空白文字を削除したくない場合にはTrimWhiteSpaceプロパティをfalseに設定する(デフォルトはtrue)
parser.TrimWhiteSpace = False
' ファイルの終端までループ
While Not parser.EndOfData
' フィールドを読込
Dim row As String() = parser.ReadFields()
For Each field As String In row
' タブ区切りで出力
Console.Write(field + vbTab)
Next
Console.WriteLine()
End While
End Using
Console.ReadKey()
End Sub
End Module