Listbox ab Zeichen " , " neue Zeile einfügen

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Elster.

    Listbox ab Zeichen " , " neue Zeile einfügen

    Hallo alle zusammen.
    Ich habe ein Problem und weiß leider nicht weiter.

    Ich habe eine Listbox diesem Inhalt:

    Orc Krieger
    Dalaran. 22, Eiskrone, Rabenwehr
    Funkadr. 7779

    Ich möchte jedoch, dass die Wörter nach dem Zeichen " , " (Komma) untereinander aufgelistet werden und das Komma entfernt wird.
    So hätte ich es gerne.

    Orc Krieger
    Dalaran. 22
    Eiskrone
    Rabenwehr
    Funkadr. 7779


    Gruß
    Wie kommen die Daten in die Listbox?

    Wenn das nur einzelne String sind, dann meinTollerString.Split(",") -> Liefert ein Array von Strings. Statt den meinTollerString hinzuzufügen, fügst du dann jedes Element aus dem Array zu.

    LG, Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Danke für die schnelle Antwort.

    Ich lade die Items der Listbox über eine Function hoch.
    Die Function sieht wiefolgt aus:

    VB.NET-Quellcode

    1. Using FD As New OpenFileDialog()
    2. FD.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
    3. If FD.ShowDialog = Windows.Forms.DialogResult.OK Then
    4. ListBox1.Items.Clear()
    5. ListBox1.Items.AddRange(IO.File.ReadAllLines(FD.FileName))
    6. End If
    7. End Using
    Naja du musst das, was dir dein ReadAllLines zurückgibt, zwischenspeichern und dann jede Zeile einzeln durchgehen und adden.

    z.B.

    VB.NET-Quellcode

    1. Dim meineTollenTextZeilen() As String = File.ReadAllLines(FD.FileName)
    2. For Each eineTolleZeile as String In meineTollenTextZeilen
    3. Dim meineTollenEinträge() As String = eineTolleZeile.Split(",")
    4. For Each meinTollerEintrag as String in meineTollenEinträge
    5. ListBox1.Items.Add(meinTollerEintrag)
    6. Next
    7. Next


    LG, Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    @Elster Du musst die ListBox OwnerDrawing machen und die aktuelle Item-Höhe berechnen, um Mehrzeiler in einem Item anzuzeigen.
    Gugst Du msdn.microsoft.com/de-de/libra…easureitem(v=vs.110).aspx
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich danke dir vielmals Acr0most . Es funktioniert! :thumbsup:

    Jedoch habe ich ein ganz kleines Problem.
    Undzwar wird das Leerzeichen nach dem Split-Char "," auch noch mitgenommen.
    Kann ich das irgendwie unterbinden, dass das Leerzeichen mitgenommen wird ?

    Momentan sieht es so aus:

    Orc Krieger
    Dalaran. 22
    _Eiskrone
    _Rabenwehr
    Funkadr. 7779


    (die " _ " stellen das Leerzeichen dar ^^)


    Mir fällt an deinem Beispiel nichts falsches auf..
    Aber über die Befehle Trim, LTrim und RTrim kannst du je nach Bedarf voranstehende und nachfolgende Leerzeichen abschneiden.

    LG, Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup: