语法超出范围未处理

时间:2015-04-17 14:51:30

标签: vb.net

我是一个新手,所以任何建议都会很棒。我有一个程序 打开CSV,然后将其另存为具有不同名称的csv。将会有一套改变领域的规则,但还没有达到目标。

当我在一个小的csv文件(大约4列和行)上运行它时,它工作正常,但是如果文件较大,则会因上述错误而失败。我确定它有点蠢,但我不知所措。

谢谢,

迪安

    Dim FileName = tbOpen.Text
    Dim fileout = tbSave.Text
    Dim lines = File.ReadAllLines(FileName)
    Dim output As New List(Of String)

    For Each line In lines
        Dim fields = line.Split(","c)

        If fields(1) = "" Then        'This is where the error is triggered
            fields(1) = "Norman"
        End If
        If fields(3) = "" Then
            fields(3) = "Blue Leather"
        End If
        If fields(4) = "" Then
            fields(3) = "Interlined"
        End If

        output.Add(String.Join(","c, fields))
    Next
    File.WriteAllLines(fileout, output)


    Try

        Dim a As String = My.Computer.FileSystem.ReadAllText(tbSave.Text)
        Dim b As String() = a.Split(vbNewLine)
        ListBox2.Items.AddRange(b)
    Catch ex As Exception

        MsgBox("error")

    End Try

1 个答案:

答案 0 :(得分:0)

请记住,数组启动索引0. VB因延伸此概念而臭名昭着。通常,当你声明一个包含10个元素的数组时,索引将是0到9.另一方面,使用VB,索引将是0到10,这实际上会给你11个元素。