Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays VB.net索引超出范围异常_Arrays_Vb.net_Visual Studio 2010_Indexing - Fatal编程技术网

Arrays VB.net索引超出范围异常

Arrays VB.net索引超出范围异常,arrays,vb.net,visual-studio-2010,indexing,Arrays,Vb.net,Visual Studio 2010,Indexing,该程序加载一个.txt文件,将其拆分为“:”,然后取下每个文件并在某处进行检查 每当我的程序到达列表的末尾时,我就有一个错误。这是我的代码 Private Sub Button5_Click(sender As System.Object, e As System.EventArgs) Handles Button5.Click If ListBox1.Items.Count = 0 Then MsgBox("Checking DONE") E

该程序加载一个.txt文件,将其拆分为“:”,然后取下每个文件并在某处进行检查 每当我的程序到达列表的末尾时,我就有一个错误。这是我的代码

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()
以编程方式单击该按钮,然后按钮两次单击该按钮,它应该继续,直到列表框为空,但它只是崩溃/给出错误

这是将列表导入列表框的按钮

OpenFileDialog1.InitialDirectory = "./"
OpenFileDialog1.FileName = "Open a text file..."
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?

您在strArr中拆分了
str
,但检查了
str.Count

str = ListBox1.Items(0)
strArr = str.Split(":")
If strArr.Count > 0 Then
   ....
下面的代码使用strArr的索引0和索引1,以便更好地检查

If strArr.Count > 1 Then

非常感谢。哈哈,为什么索引是1而不是0,只想增加我的知识网开始在索引0的每个数组。当您在strArr中拆分字符串时,计数表示数组中存在的元素数,因此在以下位置拆分时,字符串XXXXX:YYYY将成为两元素数组strArr(0)=XXXX,strArr(1)=YYYY。如果没有:(XXXXX YYYY),您仍然可以从拆分中获得一个数组,但它是一个单元素数组(strArr(0)=XXXXYYYY)。如果您尝试在此数组中使用index=1,您会遇到一个异常,因为索引1中没有任何元素,但我对此并不了解,但感谢您的帮助:)