2014-11-04 187 views
0

該程序加載一個.txt將它拆分爲「:」,然後將其分別檢查到某處 每當我的程序到達列表末尾時出現錯誤這是我的代碼VB.net索引超出範圍異常

Private Sub Button5_Click(sender As System.Object, e As System.EventArgs) Handles Button5.Click 
    If ListBox1.Items.Count = 0 Then 
     MsgBox("Checking DONE") 
    ElseIf ListBox1.Items.Count.ToString > 0 Then 

     Dim str As String 
     Dim strArr() As String 

     str = ListBox1.Items(0) 
     strArr = str.Split(":") 
     If str.Count > 0 Then 
      WebBrowser1.Document.GetElementById("email").SetAttribute("value", (strArr(0))) 
      WebBrowser1.Document.GetElementById("password").SetAttribute("value", (strArr(1))) 
      WebBrowser1.Document.GetElementById("login-form-contBtn").InvokeMember("click") 
      WaitForPageLoad() 
      Threading.Thread.Sleep(5000) 
      Me.Button2.PerformClick() 
     Else 
      MsgBox("Done") 
     End If 
     End If 


End Sub 

另外,Me.Button2.PerformClick()點擊按鈕編程,然後按鈕兩次點擊這個按鈕,它應該繼續下去,直到列表框爲空,但它只是崩潰/給出錯誤

以下是錯誤http://gyazo.com/cb7c47bca69af101871035bf18231b6e

這是將列表導入列表框的按鈕。 OpenFileDialog1.Filter =「Text Files(* .txt)|」| * .TXT」 OpenFileDialog1.ShowDialog()

Dim R As New IO.StreamReader(OpenFileDialog1.FileName) 
    Dim string1 As String() = R.ReadToEnd().Split(New String(Environment.NewLine, StringSplitOptions.RemoveEmptyEntries)) 

    ListBox1.Items.AddRange(string1) 
    R.Close() 
    ListBox1.SelectedItem = ListBox1.Items(0) 

    Dim str As String 
    Dim strArr() As String 

    str = ListBox1.SelectedItem 
    strArr = str.Split(":") 'Delimits the imported combo list 
    Label4.Text = (strArr(0)) 'Email 
    Label3.Text = (strArr(1)) 'Password 
    Label6.Text = (ListBox1.Items.Count) 'How big is combo? 

回答

1

您在strArr分裂str但你檢查str.Count

str = ListBox1.Items(0) 
strArr = str.Split(":") 
If strArr.Count > 0 Then 
    .... 

下面的代碼使用strArr的索引0和索引1所以最好檢查

If strArr.Count > 1 Then 
+0

謝謝!!! lol,爲什麼索引1而不是0 ?,只是想增加我的知識 – 2014-11-04 17:29:28

+0

每個數組在NET中在索引0處開始。在strArr中分割字符串Count表示數組中存在的元素的數量,因此字符串XXXXX:YYYYY在拆分時變爲兩個元素數組strArr(0)= XXXX,strArr(1) = YYYYY。如果沒有:(XXXXXYYYYY),你仍然從分割中得到一個數組,但它是一個單元數組(strArr(0)= XXXXYYYYY)。如果你嘗試在這個數組上使用index = 1,你會得到一個異常,因爲索引1處沒有元素。 – Steve 2014-11-04 17:45:12

+0

仍然不明白,但是謝謝你的幫助:) – 2014-11-04 18:03:27