ListBox Items Removen

  • VB.NET

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

    ListBox Items Removen

    Hey,

    also ich will aus einer ListBox Unicodes + Empty Items löschen, für Unicode:

    VB.NET-Quellcode

    1. With ListBox1
    2. For index As Integer = 0 To .Items.Count - 1
    3. .Items(index) = .Items(index).ToString.Replace("*", String.Empty)
    4. .Items(index) = .Items(index).ToString.Replace("?", String.Empty)
    5. .Items(index) = .Items(index).ToString.Replace("\", String.Empty)
    6. .Items(index) = .Items(index).ToString.Replace("/", String.Empty)
    7. .Items(index) = .Items(index).ToString.Replace(":", String.Empty)
    8. .Items(index) = .Items(index).ToString.Replace("|", String.Empty)
    9. .Items(index) = .Items(index).ToString.Replace(">", String.Empty)
    10. .Items(index) = .Items(index).ToString.Replace("<", String.Empty)
    11. Next


    Nun wie soll ich das Zeichen: " löschen?

    Und das 2. Ist leere Items löschen, habe ich:

    VB.NET-Quellcode

    1. For i As Integer = ListBox1.Items.Count - 1 To 0 Step -1
    2. If ListBox1.Items(i) = String.Empty Then
    3. ListBox1.Items.Remove(String.Empty)
    4. End If
    5. Next


    Aber wie lösche ich Items wo nur Leerzeichen drinn sind? :S
    Omg die habe ich doch drinne die Funktion aber ich kann ja nicht:

    VB.NET-Quellcode

    1. .Items(index) = .Items(index).ToString.Replace(""", String.Empty)


    angeben!

    Und das Leere Items löschen geht aber nicht wenn NUR LEERZEICHEN DRINN STEHEN!

    Bitte einmal genauer den Thread durchlesen..
    Hey,

    n0ise schrieb:

    Leerzeichen sind doch schon (wie das Wort schon sagt "leer") aber warum löscht er diese Items nicht?

    weil Leerzeichen nicht leer sind, sonst wäre es ja kein Zeichen. Ergo ist ein String deshalb auch nicht "leer". Wiederum eine kurze Suche mir Google ergibt, dass das Leerzeichen den Ascii-Code 32 hat. Ich denke, das könnte dir weiterhelfen.

    Gruß, Manschula
    Für ein MultiRemove ist String.Split besser geeignet als String.Replace, da eine Überladung bereitsteht, die multiple Separator-Chars akzeptiert. Der String wird an den Separatoren in ein String-Array zerstückelt, und dann gleich wieder zusammengesetzt, ohne die Separatoren wieder einzufügen :)
    Beachte auch die Verdopplungs-Syntax, mit der " innerhalb eines Strings dargestellt wird.
    Beachte: Allgemein bei SuchDurchläufen mit Lösch-Absicht muß man logischerweise rückwärts durchlaufen.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
    2. Handles Button1.Click
    3. Dim toDelete = "*?\/:|""<>".ToCharArray
    4. For i = ListBox1.Items.Count - 1 To 0 Step -1
    5. Dim s = ListBox1.Items(i).ToString
    6. s = String.Concat(s.Split(toDelete)) 'MultiRemove: zerstückeln
    7. ' und ohne Separatoren wieder zusammensetzen
    8. If s.Trim() = "" Then
    9. ListBox1.Items.RemoveAt(i)
    10. Else
    11. ListBox1.Items(i) = s
    12. End If
    13. Next
    14. End Sub

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