我正在为我的作业制作机器人,它使用代理来浏览网站。我有一个名为“浏览”的字段,它允许我浏览代理文件并读入一个数组并显示来自计数器的代理总数。我被困在这里。以下是我目前使用的代码。请帮忙
变量proxyArray之前已经使用并分配了一个值。空 引用异常可能在运行时产生。
代码
Private Sub browserProxy_Click(sender As Object, e As EventArgs) Handles browserProxy.Click
Dim myStream As Stream = Nothing
Dim selectedFile As String
Dim openFileDialog1 As New OpenFileDialog()
Dim proxyArray() As String
Dim totalProxy As Integer
openFileDialog1.InitialDirectory = "C:\"
openFileDialog1.Filter = "Text File (*.txt)|*.txt"
openFileDialog1.FilterIndex = 1
openFileDialog1.RestoreDirectory = False
If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
selectedFile = String.Format(openFileDialog1.FileName)
Dim objreader As New System.IO.StreamReader(selectedFile)
i = 0
Do While Not objreader.EndOfStream
proxyArray(i) = objreader.ReadLine
i += 1
Loop
totalProxy = i
objreader.Close()
End If
End Sub
在运行时弹出。
答案 0 :(得分:3)
编译器是对的,您已声明变量proxyArray
,但您从未初始化它。这是一个初始化的数组,包含10个字符串Nothing
:
Dim proxyArray(9) As String
但由于项目数量未知,因此您应该使用List(Of String)
。它是可调整大小的,而数组具有固定的大小。
Dim proxList As New List(Of String)
'...'
proxList.Add(objreader.ReadLine)
如果您需要阵列,最后可以使用proxList.ToArray()
。
答案 1 :(得分:0)
每次使用List(Of String)
或ReDim Preserve proxyArray(i + 1)
。