none
vb2005 怎樣讀取 .txt 儲存 去 list box RRS feed

  • 問題

  • 我想問 怎樣讀取(load) .txt 儲存(save) 去 list box

     

    儲存(save) 碼(code)

    Code Snippet

        Private Sub SaveToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveToolStripMenuItem1.Click
            Dim filePath As String
            Dim file As System.IO.StreamWriter
            filePath = System.IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.MyDocuments, "ABC.txt")
            file = My.Computer.FileSystem.OpenTextFileWriter(filePath, False)

            file.WriteLine("save start")

            For Each itemno In lstOutput.Items
                file.WriteLine(itemno)
            Next

            file.WriteLine("save end")
            file.Close()

        End Sub

     

     

     

    但有小小要求

    因我儲存(save) 那時會加一些資料

    所以... 要刪除不相關的資料

     

    save eg:

    Code Snippet

    save start

    01 can tai man v0000000

    02 chan sui man v2000000

    end save

     

     

     

    我想讀取(load) 儲存(save) 沒了 save start 和 end save 這2段文字

     

    list box 讀取(load)完....會輸出

    Code Snippet

    01 can tai man v0000000

    02 chan sui man v2000000

     

    2008年2月15日 下午 01:30

解答

  • Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        lstOutput.Items.Clear()
     
        Dim filePath As String
        Dim file As System.IO.StreamReader
        filePath = System.IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.MyDocuments, "ABC.txt")
        file = My.Computer.FileSystem.OpenTextFileReader(filePath)
     
        While file.Peek() <> -1
            Dim line As String = file.ReadLine().Trim()
            If line = "save end" Then
                Exit While
            ElseIf line <> "save start" Then
                lstOutput.Items.Add(line)
            End If
        End While
     
        file.Close()
    End Sub
    2008年2月16日 上午 04:37

所有回覆

  • 如果 妳的電腦  沒安裝 繁體中文輸入法   (我猜想  妳是香港人)

     

    可否 直接將妳的問題 以 英文   敘述

    因為 妳的  中文字+英文字 的 拼湊敘述法  

    真的有點看不懂妳所要表達的是什麼

     

     

     

    2008年2月16日 上午 01:58
  • 我已有所修改....

    因 我用英文版...list box 我真不知中文是翻譯是什麼了

    2008年2月16日 上午 03:20
  • 不知您的意思是不是說 儲存檔案時會增加START 和END 兩筆資料

    但是讀取檔案加入LIST BOX 時就不要顯示START 和END 兩筆資料

     

    那就讀檔時排除第一筆和最後一筆即可

    可利用StreamReader來一筆一筆讀檔

    http://msdn2.microsoft.com/zh-tw/library/db5x7c0d(VS.80).aspx

     

    2008年2月16日 上午 03:36
  •  

    嗯~~~

     

    save 我識怎樣寫

     

    但load 就不識了

    2008年2月16日 上午 03:40
  • Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        lstOutput.Items.Clear()
     
        Dim filePath As String
        Dim file As System.IO.StreamReader
        filePath = System.IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.MyDocuments, "ABC.txt")
        file = My.Computer.FileSystem.OpenTextFileReader(filePath)
     
        While file.Peek() <> -1
            Dim line As String = file.ReadLine().Trim()
            If line = "save end" Then
                Exit While
            ElseIf line <> "save start" Then
                lstOutput.Items.Add(line)
            End If
        End While
     
        file.Close()
    End Sub
    2008年2月16日 上午 04:37