Der Index war außerhalb des Arraybereichs

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von haiyyu.

    Der Index war außerhalb des Arraybereichs

    Hallo.

    Ich arbeite gerade an einem Programm, womit ich "mp3-Dateien" abspielen kann,
    die auf meinem WebServer liegen.

    So schaut es aus:


    Die 2 Spalten werden automatisch ausgefüllt im Format Songname|Station
    mit einem .getfile-Script was eigentlich ganz simpel aufgebaut ist:

    PHP-Quellcode

    1. <?php
    2. $files = glob("*.mp3");
    3. foreach($files as $datei)
    4. {
    5. $file = trim($datei);
    6. echo str_replace(".mp3", "", $file) . "\n";
    7. }
    8. ?>


    Ich habe ein paar Lieder auf meinen WebServer geladen, und es lief alles einwandfrei.
    Nun habe ich auch nichts mehr im Code bzw. an der Form geändert, ich habe nur
    ein paar mehr .mp3-Dateien auf meinem WebServer geladen.

    Nun verstehe ich also nicht, wieso ich plötzlich folgende Fehlermeldung bekomme:
    "Der Index war außerhalb des Arraybereichs". Es lief alles ganz normal, nach
    dem hochladen von ein paar mehr Dateien kann ich das Programm garnicht mehr
    öffnen, es erscheint direkt die Fehlermeldung.

    Der Fehler trifft auf folgenden Codeabschnitt zu:

    VB.NET-Quellcode

    1. ListView1.Items.Add(file.Split("|")(0)).SubItems.Add(file.Split("|")(1))


    Der gesammte Code lautet:



    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Dim files() As String = New WebClient().DownloadString("http://******/getfiles.php").Split(vbLf)
    4. For Each file In files
    5. If Not file.Trim() = String.Empty Then
    6. ListView1.Items.Add(file.Split("|")(0)).SubItems.Add(file.Split("|")(1))
    7. End If
    8. Next
    9. End Sub
    10. Private Sub ListView1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.Click
    11. Dim realname As String = ListView1.SelectedItems(0).Text + "|" + ListView1.SelectedItems(0).SubItems(1).Text + ".mp3"
    12. realname = "http://*****/" + realname
    13. AxWindowsMediaPlayer1.URL = realname
    14. End Sub
    15. Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
    16. End Sub
    17. End Class


    Ich hoffe mir kann jemand helfen, und mir sagen was geändert werden muss.
    Gib mal jeweils den Inhalt der file-Variable in einer MessageBox aus (natürlich in der For Each Schleife) und schau, ob sich überall mindestens ein | befindet.