"索引超出了数组的范围"访问变量时

时间:2015-01-22 07:05:40

标签: vb.net

尝试将其设置在哪里,单击一个按钮,它允许您选择目录,目录,然后该目录.file,由特定行更改。目前的代码。对不起,我是个菜鸟。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim dialog As New OpenFileDialog()
    If DialogResult.OK = dialog.ShowDialog Then
        TextBox1.Text = dialog.FileName
        Dim Directory1 As String
        Directory1 = Trim(TextBox1.Text)
        Dim Item1 As String
        Item1 = Trim(TextBox2.Text)
        Dim thefile As String = Directory1
        Dim lines() As String = System.IO.File.ReadAllLines(Directory1)
        // This gets the error. Item1.
        // {"Index was outside the bounds of the array."}
        lines(2) = Item1

        System.IO.File.WriteAllLines(thefile, lines)
    End If
End Sub

1 个答案:

答案 0 :(得分:1)

问题是文件没有在数组lines()上分配足够的行,可能是因为System.IO.File.ReadAllLines(Directory1)读取少于三行。尝试使用超过3行的文件,它应该可以工作。

你也可以这样做(对不起,我不是vb.net编码器,所以我的语法可能有误):

If lines.Length < 3 Then
   ReDim Preserve lines(2)
End If
lines(2) = Item1

我不确定你想用这个来实现什么,所以我不能给出“解决方案”。这只是让你的代码工作的“补丁”。

更新

根据评论中的要求,如果您希望在变量中更改行(从{0}开始,从{0开始),则需要执行此操作:

TextBox3.Text