0

テキスト ファイルから配列にデータをコピーしようとしましたが、エラーが発生しましIndex was outside the bounds of the arrayた。

    Dim vstring(-1) As String
    Dim vid(-1) As String
    Dim index As Integer
    Dim vText As String = ""
    Dim vFileName As String = "C:\Users\suman\Documents\Visual Studio 2010\Projects\Ass3_2076004\student.txt"

    Dim vAvgValue As Integer
    Dim vErrorMsg As String = ""
    If (Txt_IdNumber.Text).Length = 5 Then

        Dim rvSR As New IO.StreamReader(vFileName)
        Do While rvSR.Peek <> -1
            vText = rvSR.ReadLine()
            vstring = vText.Split(",")
            vid(index) = vstring(0)'error 
            index = index + 1
        Loop
4

2 に答える 2

1
Dim vstring() as String
Dim vFileName As String = "C:\Users\suman\Documents\Visual Studio 2010\Projects\Ass3_2076004\student.txt"

If Txt_IdNumber.Text.Length = 5 Then
    Using rvSR As New IO.StreamReader(vFileName)
        vstring = rvSR.ReadLines().Select(Function(s) s.Split(","c)(0)).ToArray()
    End Using
End If
于 2013-05-24T15:08:27.423 に答える
0

まず、おそらく vstring をサイズのない配列として宣言する必要があります。このような:

Dim vString() as string

次に、必要な行数がわからないので、vid を list として宣言します。このような:

Dim vid as List(of string)

次に、文字列を分割する前に、実際にコンマが含まれていることを確認する必要があります。このような:

    Do While rvSR.Peek <> -1
        vText = rvSR.ReadLine()
        If vText.Contains(",") Then
           vstring = vText.Split(",")
           vid.add(vstring(0)) 
        End If
    Loop
    'at the end, you can convert vid from a list to an array, if you want 
    Dim arr() as string = vid.ToArray()
于 2013-05-24T15:15:27.283 に答える