【VB.Net】テキストファイルを読み取ってコンボボックスへ

どうも!リョクちゃです。

今回は、VB.Netで指定したテキストファイルを読み取って出力したり、

複数行にわたるテキストファイルを読み取ってコンボボックスに格納する手法を紹介します。

ちなみに前回はこちら

Form上に複数配置したラベルやテキストボックスに値をまとめて表示したいときの方法を紹介しています。あらかじめ決まっている値ならForm上に配置した各ラベルやテキストボックスのプロパティに設定しておけば問題ないですが、そうでない時の対処法などに活用していただければと思います。



準備編:テキストファイルを作成します

まずテキストファイルを読み取るにあたって、テキストファイルを作成しましょう。

下のようなテキストファイルをメモ帳(notepad)を使って作成します。

作成したら、プロジェクトのソリューションエクスプローラのbinフォルダをクリックします。

クリックしたら、Debugフォルダが表示されるので、

これを右クリックして、追加を選びます。

追加を選んだら、作成したテキストファイルを追加します。

追加されると、Debaugフォルダ内に表示がされます。

これで準備は完了です。


テキストファイルを読み取る

ボタンを押してテキストファイルを読み取るようにできるよう、

下のようなフォームを作成しましょう。

それでは、テキストファイルを読み取るコードを書いていきます。

スポンサーリンク




テキストファイルを読み取る変数を作成

テキストファイルを読み取るには、System.IO.StreamReaderを使います。

※VisualBasic.Netで標準に搭載されているライブラリです。

これだけでは、使えないので次にインスタンスを作成します。

インスタンス: 変数srという箱にSystem.IO.StreamReaderを収めて、

実体として扱うような状態です。

イメージでいうと、憑依に近い感じですかね。

ですが、インスタンスを作成する前に

読み取るべきファイルが指定の場所にあるか確認します。

事前にファイルの存在を確認

ここでは、System.IO.File.Exists(“読み取りたいファイル名(パス含む)”)と記述することで、

ファイルの有無を確認しています。

この記述があるとないとで、プログラムの出来にも影響してきますので、

テキストファイル問わず外部のファイルを読み取る際には、

このような対策もしておくとよいでしょう。

それでは、インスタンスを作成していきます。

インスタンスを作成

sr = New System.IO.StreamReader(“読み取りたいファイル名(パス含む)”)と書き、

ファイルの場所をインスタンス作成時に変数に設定しています。



テキストファイルを読み取る

sr.ReadLineと記述することで、読み取った内容をメッセージボックスで表示しています。

実際にボタンを押して、実行されるか確認しましょう。

下のような画面が表示されていれば成功です。

ここでは、テキストファイルから1行のみを読み取ることができました。

次で、複数行の読み取りを行い、コンボボックスへ読み取った値をいれていきます。

ファイルをすべて読み取り→コンボボックスへ

下のようなコードになります。

While文の条件式にsr.Peek >= 0と書くことで、

ファイルの末尾まで1行ずつ読み取る処理をしています。

1行ずつの値はそれぞれコンボボックスに格納をしています。

実際に実行して、コンボボックスに値が入っているか確認してみましょう。

下のようになれば成功です。

まとめ

テキストファイルを読み取るには、System.IO.StreamReaderを使う。
ファイルの末尾まで読み取る場合は、System.IO.StreamReader.Peek >= 0 を使う。
ファイルの有無を確認するには、System.IO.File.Exists(ファイル名)を使う。
ありがとうございました。

・こちらの書籍を参考にVB.Net勉強しています。

スポンサーリンク