どうも!リョクちゃです。
今回はCSVファイルを読み込む方法を例を交えて紹介していきます。
例にて使うCSVファイルは前回の記事で作成したCSVファイルを使います。
前回の記事はこちらになります。
目次
準備編:フォームの作成
下のようなフォームを今回作成します。
今回使用するコントロールは、
- RichTextBox
- Button
を使用します。
動作としては、ボタンを押すことで指定の場所のCSVファイルを読み込みます。
読み込んだ結果をRichTextBoxに出力していきます。
このような動作をするプログラムを作成していきます。
CSVファイルを読み込む準備
CSVファイルを読み込むには、テキストファイルを読み込むときと同じ処理を行います。
System.IO.StreamReaderを使います。
先ほど作ったフォームにコードを書いていきましょう。
1 2 3 4 5 6 7 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' CSVファイルを読み込む変数の準備 Dim sr As System.IO.StreamReader = Nothing End Sub End Class |
ここではSystem.IO.StreamReaderを使うための変数を準備しています。
読み込むCSVファイルの有無を確認
CSVファイルを読み込む前に、読み込むCSVファイルが存在するかどうかを
確認するコードを書いていきます。
確認するにはSystem.IO.FileクラスのExistsメソッドを使用します。
※これは事前に確認をすることでエラーとなることを防いでいます。
アプリケーションを作るうえでは使う側のことも考えたコードを書くことが大事です。
と筆者は思っています。
コードは下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' CSVファイルを読み込む変数の準備 Dim sr As System.IO.StreamReader = Nothing ' CSVファイルが存在するかチェック If System.IO.File.Exists("./Test.csv") Then ' CSVファイルがあれば処理を行う End If End Sub End Class |
System.IO.File.Exists(“ファイルの場所”)と書くことでファイルの存在を確認しています。
インスタンスを作成する
このままではファイルを読み込む変数が使えないので、インスタンス化をします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' CSVファイルを読み込む変数の準備 Dim sr As System.IO.StreamReader = Nothing ' CSVファイルが存在するかチェック If System.IO.File.Exists("./Test.csv") Then ' CSVファイルがあれば処理を行う ' インスタンス作成 sr = New System.IO.StreamReader("./Test.csv") End If End Sub End Class |
インスタンスを作成する際に、読み込むCSVファイルを引数に渡しています。
CSVファイルを読み込む
それではCSVファイルを読み込んでいきます。
読み込むには、System.IO.StreamReaderクラスのReadLineメソッドを使います。
また全ての中身を読み取るために、
System.IO.StreamReaderクラスのPeekメソッドも使います。
コードは下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' CSVファイルを読み込む変数の準備 Dim sr As System.IO.StreamReader = Nothing ' CSVファイルが存在するかチェック If System.IO.File.Exists("./Test.csv") Then ' CSVファイルがあれば処理を行う ' インスタンス作成 sr = New System.IO.StreamReader("./Test.csv") ' CSVファイルを最後まで読み取り ' RichTextへ出力をしていく While sr.Peek >= 0 Dim line As String() = sr.ReadLine.Split(","c) For Each item As String In line Me.RichTextBox1.Text += item + vbCrLf Next item End While End If End Sub End Class |
While文を使って、CSVファイルを1行ずつ読み込んで処理をさせています。
sr.ReadLineで読み込んだ内容をsplit関数を使って、
カンマを区切り文字として、String配列に格納しています。
String配列に格納した値をFor Each文を使って1つずつ取り出し、
RichTextBoxに表示をさせています。
vbCrLfは改行を表しており、1つずつを出力する際に改行をさせています。
実際にボタンを押して実行させた図を下に示します。
これでCSVファイルを読み込むことができました、お疲れ様です。
「Tech Kids Online Coaching」無料体験会 詳細・お申込みはこちら!
まとめ
CSVファイルを読み込むには、
読み込む前に、ファイルの存在確認を行う
全ての行を読み取るには、
1行の値を受け取るには、
・こちらの書籍を参考にVB.Net勉強しています。