共用方式為


從文字檔讀取

更新:2007 年 11 月

在本課程中,您將學習如何使用 My.Computer.FileSystem 物件,在 Visual Basic 中讀取文字檔。

上一個課程寫入至文字檔說明如何將功能加入至 [圖片檢視器] 應用程式,可讓您將最愛的圖片名稱儲存至文字檔。下一個步驟就是讀取文字檔。這麼做可讓您只檢視最愛的圖片。

檔案基本概念

在您讀取文字檔前,有些概念您必須知道。Visual Basic 中的 My 物件可讓您輕鬆處理檔案。您可以使用 My.Computer.FileSystem 物件My.Computer.FileSystem.ReadAllText 方法,讀取電腦中的檔案。

內含以逗號分隔字串的文字檔,又稱為「逗號分隔」(Comma-Delimited) 文字檔。文字檔中的每一個項目都稱為「欄位」(Field)。如果要讀取逗號分隔文字檔的內容,您可以使用 My.Computer.FileSystem.OpenTextFieldParser 方法

在本程序中,您將檢查以確定 [文件] 資料夾中有我的最愛文字檔,再試著載入該檔案。如果該檔案不存在,應用程式會對使用者顯示訊息。

注意事項:

在 Windows XP 中,有些特殊的資料夾名為 [我的文件]、[我的圖片] 和 [我的音樂]。在 Windows Vista 中,這些資料夾的名稱中都沒有「我的」兩字,名稱只有「文件」、「圖片」和「音樂」而已。不過,本課中的程式碼將在 Windows XP 和 Windows Vista 中執行。

試試看!

若要讀取逗號分隔文字檔

  1. 開啟上一課的「圖片檢視器」專案。如果您尚未完成該課程,請至寫入至文字檔,並完成該課程再繼續進行。

  2. 按一下 [方案總管] 中的 [Form1.vb],然後按一下 [檢視] 功能表中的 [設計工具]。

  3. 將 [Button] 控制項加入至表單中 [加到我的最愛] 按鈕的旁邊。

  4. 變更此按鈕的下列屬性:

    屬性

    Name

    LoadFavorites

    Text

    Load Favorites

    Size

    85, 23

  5. 按兩下新的 [Button] 控制項,在 [程式碼編輯器] 中加入預設的事件處理常式。

  6. 在 LoadFavorites_Click 事件處理常式中,加入下列程式碼以清除清單方塊和圖片方塊的內容。如果沒有先清除清單方塊,則每次您按一下 [載入我的最愛] 按鈕時,檔案路徑和名稱都會附加至清單。

    ' Clear the picture box and the list box.
    Me.ListBox1.Items.Clear()
    Me.PictureBox1.ImageLocation = ""
    
  7. 加入下列 If 陳述式,查看 FavoritePictures 文字檔是否存在。如果不存在,就告知使用者檔案不存在。

    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. 按一下 [載入我的最愛] 按鈕,載入 FavoritePictures.txt 檔案中所列的檔案。

  12. 按一下清單方塊中的項目,檢視 [圖片檢視器] 中的圖片。

後續步驟

在本課程中,您已經學到如何讀取逗號分隔文字檔,以及將檔案中的每一個項目加入至清單。在下一個課程中,您將學習如何刪除 [文件] 資料夾中我的最愛文字檔。

下一個課程:刪除文字檔

請參閱

工作

擷取資料夾中檔案的名稱

寫入至文字檔

其他資源

使用檔案系統:寫入和讀取檔案

Visual Basic 導覽