次の方法で共有


テキスト ファイルの読み取り

更新 : 2007 年 11 月

このレッスンでは、My.Computer.FileSystem オブジェクトを使用して、Visual Basic でテキスト ファイルを読み取る方法について説明します。

前のレッスンの「テキスト ファイルへの書き込み」では、お気に入りのピクチャの名前をテキスト ファイルに保存する機能を Picture Viewer アプリケーションに追加する方法を説明しました。次の手順では、テキスト ファイルを読み取ります。これで、お気に入りのピクチャだけを表示できるようになります。

ファイルに関する基本的事項

テキスト ファイルの読み取りを行う前に、知っておくべきことがいくつかあります。Visual Basic の My オブジェクトを使用すると、ファイルを簡単に扱えます。My.Computer.FileSystem オブジェクトMy.Computer.FileSystem.ReadAllText メソッドを使用することにより、コンピュータ上のファイルを読み取ることができます。

コンマで区切られた文字列を含むテキスト ファイルを、コンマ区切りテキスト ファイルといいます。テキスト ファイル内の各項目を、フィールドといいます。コンマ区切りテキスト ファイルの内容を読み取る場合は、My.Computer.FileSystem.OpenTextFieldParser メソッドを使用できます。

この手順では、お気に入りテキスト ファイルを読み込む前に、それが Documents フォルダに存在するかどうかを確認します。ファイルが存在しない場合、アプリケーションはユーザーに対してメッセージを表示します。

Bb384499.alert_note(ja-jp,VS.90).gifメモ :

Windows XP には、マイ ドキュメント、マイ ピクチャ、およびマイ ミュージックという特別なフォルダがあります。Windows Vista では、これらのフォルダの名前から "マイ" がなくなり、ドキュメント、ピクチャ、およびミュージックという名前になっています。それでも、このレッスンのコードは Windows XP と Windows Vista のどちらでも動作します。

やってみよう

コンマ区切りテキスト ファイルを読み取るには

  1. 前のレッスンで作成した Picture Viewer プロジェクトを開きます。このプロジェクトがまだ完成していない場合は、「テキスト ファイルへの書き込み」に戻ってレッスンを完了してから再開してください。

  2. ソリューション エクスプローラで Form1.vb をクリックし、[表示] メニューの [デザイナ] をクリックします。

  3. Button コントロールをフォーム上の [Add to Favorites] ボタンの横に追加します。

  4. このボタンの以下のプロパティを変更します。

    プロパティ

    Name

    LoadFavorites

    Text

    Load Favorites

    Size

    85, 23

  5. 新しい Button コントロールをダブルクリックして、コード エディタで既定のイベント ハンドラを追加します。

  6. LoadFavorites_Click イベント ハンドラに、次のコードを追加します。このコードは、リスト ボックスとピクチャ ボックスの内容を消去します。先にリスト ボックスをクリアしておかないと、[Load Favorites] ボタンをクリックするたびに、ファイルのパスと名前がリストに追加されます。

    ' Clear the picture box and the list box.
    Me.ListBox1.Items.Clear()
    Me.PictureBox1.ImageLocation = ""
    
  7. 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
    
  8. 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(",")
    
  9. 前の手順で追加したコードの下に、次のコードを追加します。このコードは、テキスト ファイル内のフィールドをループし、各ファイルが存在するかどうかをチェックした後に 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()
    
  10. F5 キーを押してコードを実行します。

  11. [Load Favorites] ボタンをクリックして FavoritePictures.txt ファイルにリストされたファイルを読み込みます。

  12. リスト ボックスの項目をクリックして Picture Viewer にピクチャを表示します。

次の手順

このレッスンでは、コンマ区切りテキスト ファイルを読み取って、ファイル内の各項目を一覧に追加する方法を説明しました。次のレッスンでは、Documents フォルダからお気に入りテキスト ファイルを削除する方法について説明します。

次のレッスン : 「テキスト ファイルの削除

参照

処理手順

フォルダ内のファイル名の取得

テキスト ファイルへの書き込み

その他の技術情報

ファイル システムの使用 : ファイルの書き込みと読み取り

Visual Basic ガイド ツアー