none
<VB2005>索引在陣列的界限之外 RRS feed

  • 問題

  • 小弟在載入dir.list資料,會出現以下錯誤

    請教高手們,小弟哪邊弄錯了

    System.IndexOutOfRangeException 未處理
      Message="索引在陣列的界限之外。"

    =====dir.list======

    data1,123
    data2,456
    data3,789

    =================

     

         Me.ListBox1.Items.Clear()
            Me.CheckedListBox1.Items.Clear()
            Dim filepath As String
            filepath = Me.DirListBox1.Path & "\dir.list"
            Dim sr As New System.IO.StreamReader(filepath, System.Text.Encoding.Default)
            Dim addtxt, addtxt2 As String
            Do While sr.Peek > -1
                If sr.ReadLine <> "" Then
                    Dim list1txt() As String = Split(sr.ReadLine, ",")
                    addtxt = list1txt(0)
                    addtxt2 = list1txt(1)'←這邊會出現錯誤
                    If addtxt <> "" Then
                        CheckedListBox1.Items.Add(addtxt)
                    End If
                    If addtxt2 <> "" Then
                        Me.ListBox1.Items.Add(addtxt2)
                    End If
                End If
            Loop
            sr.Close()

     

     

    2007年3月11日 下午 04:23

解答

  •             If sr.ReadLine <> "" Then
                    Dim list1txt() As String = Split(sr.ReadLine, ",")

    ReadLine 是方法,每呼叫一次讀到下一行,所以你這邊第三行不是空字串,但是第四行是...

    改:

                Dim sLine As String = sr.ReadLine
                If sLine <> "" Then
                    Dim list1txt() As String = Split(sLine, ",")

    基本上我不會這樣用,我會直接讀回整個檔案,用 vbNewLine 切成陣列來用,或是直接讀成多行陣列。

    我自己用的:

    http://tlcheng.twbbs.org/TLCheng/Net/NetList.aspx?Action=Function&Module=16&Function=96

    2007年3月11日 下午 04:44
    版主