Listbox mit MP3 Namen (ohne Pfad) aus Textdatei in Listbox laden.

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von der_Kurt.

    Listbox mit MP3 Namen (ohne Pfad) aus Textdatei in Listbox laden.

    Servus,

    ich kann mir denken das das Wörtchen "Listbox laden & speichern" schon zig Male hier auftaucht und nun komme ich auch noch mit einer Frage bezüglich Listbox. :(

    Okay, ganz kleinlaut stelle ich hier mein Problemchen

    Habe den Inhalt meiner Listbox (Playliste vom Mediaplayer) als Textfile gespeichert. (mittels IO.StreamWriter und Openfiledialog)
    In diesem Textfile stehen nun alle Items mit kompletter Pfadangabe. Soweit, sogut...

    Ihr könnts Euch denken ....

    Mit Streamreader möchte ich nun das Textfile wieder in die Listbox laden und zack ... stehen die kompletten Pfadangaben mit dabei.

    Meine Frage, wie könnte es anders sein: Wie bewerkstellige ich es nun, das nur die reinen Tracknamen ohne Pfadangaben in der Listbox stehen ?

    Auch ich habe mich hier schon durchgeschaut und gegoogelt, aber nu nisses wie es ist... der Kopf qualmt.. die Augen brennen .. und freu mich nun auf jede hilfreiche Idee.
    Bilder
    • vor dem speichern.JPG

      28,18 kB, 369×171, 163 mal angesehen
    • nach dem laden.JPG

      41,82 kB, 365×164, 175 mal angesehen
    • openfilebutton.JPG

      41,93 kB, 892×234, 185 mal angesehen
    • Save_load.JPG

      74,4 kB, 903×466, 174 mal angesehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „tomeck2012“ ()

    VB.NET-Quellcode

    1. IO.Path.GetFileNameWithoutExtension


    @tomeck2012: Du solltest dir Gedanken über ein Datenmodell machen.
    Wenn du die Daten aus der Datei liest, und gleich in die Listbox einfügst, dann ist es so. Wenn du aber nur die Dateinamen haben willst, dann:
    Jetzt hast du in der Listbox aber unter Umständen keinen Dateinamen mehr, den du starten kannst. (ich gehe mal davon aus, dass du diese Dateien aus der Liste starten möchtest.

    Eine Listbox kann Elemente vom Typ "Object" enthalten. Also kannst du dort auch selbstgebastelte Klassen verwenden. Als Beispiel:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Musikdatei
    2. Public Dateiname As String
    3. Sub New(dateiname As String)
    4. MyClass.Dateiname = dateiname
    5. End Sub
    6. Public ReadOnly Property Kurzername As String
    7. Get
    8. Return IO.Path.GetFileNameWithoutExtension(Dateiname)
    9. End Get
    10. End Property
    11. Public Overrides Function ToString() As String
    12. Return Kurzername
    13. End Function
    14. End Class


    Anstatt ein Element mit Listbox1.Items.Add Dateiname einzufügen, verwendest du Listbox1.Items.Add (New Musikdatei(dateiname))
    Nun hast du in der Listbox das komplette Objekt stehen, kannst mit Dateiname auf den vollen Namen zugreifen, mit Kurzername auf den Dateinamen ohne Pfad und Erweiterung. Die Darstellung wird durch die Überschreibung der Tostring-Funktion geregelt. Auch hier wird der Dateiname ohne Pfad übergeben.

    Dies ist nur ein Beispiel, wie du es lösen könntest.