テキスト ファイルの読み取り
更新 : 2007 年 11 月
このレッスンでは、My.Computer.FileSystem オブジェクトを使用して、Visual Basic でテキスト ファイルを読み取る方法について説明します。
前のレッスンの「テキスト ファイルへの書き込み」では、お気に入りのピクチャの名前をテキスト ファイルに保存する機能を Picture Viewer アプリケーションに追加する方法を説明しました。次の手順では、テキスト ファイルを読み取ります。これで、お気に入りのピクチャだけを表示できるようになります。
ファイルに関する基本的事項
テキスト ファイルの読み取りを行う前に、知っておくべきことがいくつかあります。Visual Basic の My オブジェクトを使用すると、ファイルを簡単に扱えます。My.Computer.FileSystem オブジェクトの My.Computer.FileSystem.ReadAllText メソッドを使用することにより、コンピュータ上のファイルを読み取ることができます。
コンマで区切られた文字列を含むテキスト ファイルを、コンマ区切りテキスト ファイルといいます。テキスト ファイル内の各項目を、フィールドといいます。コンマ区切りテキスト ファイルの内容を読み取る場合は、My.Computer.FileSystem.OpenTextFieldParser メソッドを使用できます。
この手順では、お気に入りテキスト ファイルを読み込む前に、それが Documents フォルダに存在するかどうかを確認します。ファイルが存在しない場合、アプリケーションはユーザーに対してメッセージを表示します。
メモ : |
---|
Windows XP には、マイ ドキュメント、マイ ピクチャ、およびマイ ミュージックという特別なフォルダがあります。Windows Vista では、これらのフォルダの名前から "マイ" がなくなり、ドキュメント、ピクチャ、およびミュージックという名前になっています。それでも、このレッスンのコードは Windows XP と Windows Vista のどちらでも動作します。 |
やってみよう
コンマ区切りテキスト ファイルを読み取るには
前のレッスンで作成した Picture Viewer プロジェクトを開きます。このプロジェクトがまだ完成していない場合は、「テキスト ファイルへの書き込み」に戻ってレッスンを完了してから再開してください。
ソリューション エクスプローラで Form1.vb をクリックし、[表示] メニューの [デザイナ] をクリックします。
Button コントロールをフォーム上の [Add to Favorites] ボタンの横に追加します。
このボタンの以下のプロパティを変更します。
プロパティ
値
Name
LoadFavorites
Text
Load Favorites
Size
85, 23
新しい Button コントロールをダブルクリックして、コード エディタで既定のイベント ハンドラを追加します。
LoadFavorites_Click イベント ハンドラに、次のコードを追加します。このコードは、リスト ボックスとピクチャ ボックスの内容を消去します。先にリスト ボックスをクリアしておかないと、[Load Favorites] ボタンをクリックするたびに、ファイルのパスと名前がリストに追加されます。
' Clear the picture box and the list box. Me.ListBox1.Items.Clear() Me.PictureBox1.ImageLocation = ""
FavoritePictures テキスト ファイルが存在するかどうかをチェックするための次の If ステートメントを追加します。ファイルが存在しない場合は、そのことをユーザーに知らせます。
Dim FavoritePictures As String = _ My.Computer.FileSystem.SpecialDirectories.MyDocuments _ & "\FavoritePictures.txt" If My.Computer.FileSystem.FileExists(FavoritePictures) Then ' Add code to read text from a file. Else MsgBox("There is no favorites file yet. Click Load" _ & " Pictures," & vbCrLf & "select a picture, and" _ & " then click Add to Favorites.", MsgBoxStyle.OkOnly, _ "Picture Viewer") End If
If ステートメントと Else ステートメントの間にあるコメントを、次のコードに置き換えます。このコードは、OpenTextFieldParser メソッドを使用して FavoritePictures.txt ファイルの内容を読み取ります。そのとき、テキスト区切り記号がコンマであることを知らせます。
' Open the FavoritePictures text file by using ' OpenTextFieldParser. Dim MyReader As Microsoft.VisualBasic.FileIO.TextFieldParser MyReader = My.Computer.FileSystem.OpenTextFieldParser( _ FavoritePictures) MyReader.SetDelimiters(",")
前の手順で追加したコードの下に、次のコードを追加します。このコードは、テキスト ファイル内のフィールドをループし、各ファイルが存在するかどうかをチェックした後に ListBox コントロールにファイルを追加します。その後 TextFieldParser を閉じます。
' Using a comma (,) as a delimeter, parse each field in ' the text file and add it to the list box. Dim textFields As String() = MyReader.ReadFields() For Each currentField As String In textFields If My.Computer.FileSystem.FileExists(currentField) Then Me.ListBox1.Items.Add(currentField) End If Next ' Close the TextFieldParser. MyReader.Close()
F5 キーを押してコードを実行します。
[Load Favorites] ボタンをクリックして FavoritePictures.txt ファイルにリストされたファイルを読み込みます。
リスト ボックスの項目をクリックして Picture Viewer にピクチャを表示します。
次の手順
このレッスンでは、コンマ区切りテキスト ファイルを読み取って、ファイル内の各項目を一覧に追加する方法を説明しました。次のレッスンでは、Documents フォルダからお気に入りテキスト ファイルを削除する方法について説明します。
次のレッスン : 「テキスト ファイルの削除」