De index ligt buiten de matrixgrenzen.

Status
Niet open voor verdere reacties.

Pim15

Gebruiker
Lid geworden
18 mrt 2012
Berichten
257
Ik wil dat als je in een listbox op een item drukt, dat er dan in een label tekst verschijnt die uit een tekstbestand komt (met de extensie .ada). Daar heb ik deze code voor:
Code:
    Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
        Dim path As String = "Bonnen.ada"
        Dim streamReader As New System.IO.StreamReader(path)
        '
        Do Until streamReader.EndOfStream
            ' Reading Line by Line :
            Dim line As String = streamReader.ReadLine()
            datumtijd = line.Split(";")(1)
            If datumtijd = ListBox1.SelectedItem Then
                datum = datumtijd.Split(" ")(0)
                tijd = datumtijd.Split(" ")(1)
                bediende = line.Split(";")(2)
                Label1.Text = tijd
                Label2.Text = datum
                Label3.Text = bediende
            End If
        Loop
        streamReader.Close()
        '
    End Sub
Maar dan krijg ik deze foutmelding:
An unhandled exception of type 'System.IndexOutOfRangeException' occurred in Jamtho Adatie.exe

Additional information: De index ligt buiten de matrixgrenzen.

Wie o wie kan mij helpen dit opgelost te krijgen?

Pim
 
Volgens mij probeer je nu voorbij de EndOfStream te lezen.

Gebruik eens:
While Not StreamReader.EndOfStream

In plaats van:
Do Until StreamReader.EndOfStream

Dan ook even Loop vervangen door End While.
 
Laatst bewerkt:
Dat werkt ook niet. Bij andere codes heb ik ook Do en Loop.

Pim
 
Heb je al eens via Debug bekeken op welk moment die foutmelding wordt gegeven?
 
Bij deze lijn:
Code:
datumtijd = line.Split(";")(1)

Pim
 
Dat zegt niet zoveel als je er niet de waarde van de variabele Line op dat moment bij verteld.
Ook zie ik nergens de variabele datumtijd als Array of Variant gedeclareerd.
 
Laatst bewerkt:
Die ziet er ongeveer zo uit:
Code:
Bonnetje;04-22-2013 20:50:01;ober;Artikelen:
1× Appeltaart à €300.0 = €3000

--------------------
Subtotaal: €3000
Korting: €111111.11
Totaal: €-11108111

Wisselgeld: €11108111
--------------------

Openingstijden: van maandag t/m vrijdag van 08:30 tot 20:30 en op zaterdag van 11:00 tot 18:00. Op zondag gesloten.
Datum en tijd van aankoop: 04-22-2013 20:50:01
Maar in het .ada bestand zitten geen enters. Ik heb het er uit gekopieerd en er zitten in eens enters in. Want dit met enters wordt naar dit bestand weggeschreven, maar in het bestand zelf zie ik geen enters zitten. Vreemd dus... Inhoudelijk kan de variabele steeds veranderen, maar het heeft wel steeds een woord, een puntkomma, een woord, een puntkomma, een woord, een puntkomma en dan een lange lijst.

Pim
 
Laatst bewerkt:
Bij dit soort zaken gaat het toch echt om preciesie en in debug mode kun je exact de inhoud van die variabele zien zoals het op het moment van de foutmelding is.
 
Laatst bewerkt:
Dit is het:
Code:
"Bonnetje;04-22-2013 20:50:01;ober;Artikelen:"

Pim
 
Ok. En deze opmerking?
"Ook zie ik nergens de variabele datumtijd als Array of Variant gedeclareerd."
 
Die staan zijn zo gedeclareerd:
Code:
    Public datumtijd As String
    Public datum As String
    Public tijd As String
    Public bediende As String

Pim
 
Dan zal die maar 1 resultaat vanuit de Split functie hebben.
 
Verander
Code:
    Public datumtijd As String
    Public datum As String
    Public tijd As String
    Public bediende As String

Eens in
Code:
    Public datumtijd() As String
    Public datum() As String
    Public tijd() As String
    Public bediende() As String

Dat zou voldoende kunnen zijn.
Zoniet, dan wil ik wel eens kijken maar heb ik wel het originele .ada bestand nodig.
 
Laatst bewerkt:
Ik heb dat gedaan, maar dan zijn er woorden blauw onderstreept. Ik maak de woorden die dan zijn onderstreept even hier rood en zet tussen haakjes de foutmelding er achter.
Code:
Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
        Dim path As String = "Bonnen.ada"
        Dim streamReader As New System.IO.StreamReader(path)
        '
        Do Until streamReader.EndOfStream
            ' Reading Line by Line :
            Dim line As String = streamReader.ReadLine()
            datumtijd = [COLOR="#FF0000"]line.Split(";")(1)[/COLOR](Error	2	Value of type 'String' cannot be converted to '1-dimensional array of String'.	C:\Users\Pim\documents\visual studio 2012\Projects\Jamtho Adatie\Jamtho Adatie\Form5.vb	30	25	Jamtho Adatie
)
            If datumtijd = ListBox1.SelectedItem Then
                datum =[COLOR="#FF0000"] datumtijd.Split(" ")(0)[/COLOR](Error	3	'Split' is not a member of 'System.Array'.	C:\Users\Pim\documents\visual studio 2012\Projects\Jamtho Adatie\Jamtho Adatie\Form5.vb	32	25	Jamtho Adatie
)
                tijd = [COLOR="#FF0000"]datumtijd.Split(" ")(1)[/COLOR](Error	4	'Split' is not a member of 'System.Array'.	C:\Users\Pim\documents\visual studio 2012\Projects\Jamtho Adatie\Jamtho Adatie\Form5.vb	33	24	Jamtho Adatie
)
                bediende = [COLOR="#FF0000"]line.Split(";")(2)[/COLOR](Error	5	Value of type 'String' cannot be converted to '1-dimensional array of String'.	C:\Users\Pim\documents\visual studio 2012\Projects\Jamtho Adatie\Jamtho Adatie\Form5.vb	34	28	Jamtho Adatie
)
                Label1.Text = [COLOR="#FF0000"]tijd[/COLOR](Error	6	Value of type '1-dimensional array of String' cannot be converted to 'String'.	C:\Users\Pim\documents\visual studio 2012\Projects\Jamtho Adatie\Jamtho Adatie\Form5.vb	35	31	Jamtho Adatie
)
                Label2.Text = [COLOR="#FF0000"]datum[/COLOR](Error	7	Value of type '1-dimensional array of String' cannot be converted to 'String'.	C:\Users\Pim\documents\visual studio 2012\Projects\Jamtho Adatie\Jamtho Adatie\Form5.vb	36	31	Jamtho Adatie
)
                Label3.Text = [COLOR="#FF0000"]bediende[/COLOR](Error	8	Value of type '1-dimensional array of String' cannot be converted to 'String'.	C:\Users\Pim\documents\visual studio 2012\Projects\Jamtho Adatie\Jamtho Adatie\Form5.vb	37	31	Jamtho Adatie
)
            End If
        Loop
        streamReader.Close()
        '
    End Sub
Bijgaand heb ik ook bonnen.ada. Het is wel bonnen.txt geworden, want ik kan geen .ada bestand uploaden. Ik hoop dat je ziet wat er misgaat.

Pim
 
Laatst bewerkt door een moderator:
Als ik vanavond weer thuis ben zal ik er eens naar kijken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan