Sonderzeichen entfernen klappt nicht

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Kangaroo.

    Sonderzeichen entfernen klappt nicht

    Hallo,

    ich habe das Problem, dass ich mit dem unterem Befehl einfach nicht den Schrägstrich wegbekomme? Alle anderen Zeichen lassen sich jedoch entfernen. Kann mir jemand den Fehler nennen?

    VB.NET-Quellcode

    1. Dim S3ausDGV2 As New System.Text.StringBuilder(row.Cells(7).Value.ToString)
    2. S3ausDGV2.Replace("/ ", "")

    Zudem wollte ich die Sonderzeichen per Schleife entfernen. Geklappt hat es leider nicht. Warum?

    VB.NET-Quellcode

    1. Dim Sond As String = ""
    2. Dim i As Integer
    3. For i = 1 To 16
    4. Sond = Chr(i + 31)
    5. S3ausDGV2.Replace(Sond, "")
    6. Next i
    Also bei mir fuzt es:
    Hab mal ein Beispiel gemacht:

    VB.NET-Quellcode

    1. Dim Sond As String = ""
    2. Dim s As String = "()/\'+#%&""[]&"
    3. Dim s2 As String = s
    4. Dim i As Integer
    5. For i = 1 To 16
    6. Sond = Chr(i + 31)
    7. s = Replace(s, Sond, "")
    8. MsgBox(s & vbCrLf & s2)
    9. Next i
    Also, so läuft es bei mir schon. Nur werden die Schrägstriche nicht entfernt...


    VB.NET-Quellcode

    1. For Each row As DataGridViewRow In DataGridView2.Rows
    2. Dim S3ausDGV2 As New System.Text.StringBuilder(row.Cells(7).Value.ToString)
    3. S3ausDGV2.Replace(" ", "")
    4. S3ausDGV2.Replace("(", "")
    5. S3ausDGV2.Replace(")", "")
    6. S3ausDGV2.Replace("?", "")
    7. S3ausDGV2.Replace(".", "")
    8. S3ausDGV2.Replace(",", "")
    9. S3ausDGV2.Replace(":", "")
    10. S3ausDGV2.Replace("-", "")
    11. S3ausDGV2.Replace("/", "")
    12. S3ausDGV2.Replace("""", "")
    13. S3ausDGV2.Replace("%", "")
    14. For Each rowdgv1 As DataGridViewRow In DataGridView1.Rows
    15. Dim StringAusDGV1 As New System.Text.StringBuilder(rowdgv1.Cells(4).Value.ToString & rowdgv1.Cells(4).Value.ToString & rowdgv1.Cells(5).Value.ToString & rowdgv1.Cells(6).Value.ToString)
    16. Dim S1ausDGV1 As New System.Text.StringBuilder(rowdgv1.Cells(0).Value.ToString)
    17. StringAusDGV1.Replace(" ", "")
    18. StringAusDGV1.Replace("(", "")
    19. StringAusDGV1.Replace(")", "")
    20. StringAusDGV1.Replace("?", "")
    21. StringAusDGV1.Replace(".", "")
    22. StringAusDGV1.Replace(",", "")
    23. StringAusDGV1.Replace(":", "")
    24. StringAusDGV1.Replace("-", "")
    25. StringAusDGV1.Replace("""", "")
    26. StringAusDGV1.Replace("%", "")
    27. If StringAusDGV1.ToString.ToUpper Like ("*" & S3ausDGV2.ToString.ToUpper & "*") Then
    28. datarow1 = gefunden.NewRow()
    29. ' Füllen der Zeile
    30. datarow1("DGV2") = S3ausDGV2.ToString
    31. datarow1("DGV1") = StringAusDGV1.ToString
    32. datarow1("ID") = S1ausDGV1.ToString
    33. ' Anfügen der Zeile an Tabelle
    34. gefunden.Rows.Add(datarow1)
    35. DataGridView3.DataSource = gefunden
    36. End If
    Auch der Code wäre richtig, natürlich entfernst Du das Zeichen "\" nicht. Es ginge auch so, wenn Du nur Buchstaben und Zahlen haben möchtest:

    VB.NET-Quellcode

    1. Dim sb As New StringBuilder("1/\34.#")
    2. EntferneSonderzeichen(sb)
    3. ....
    4. ' lässt nur Zahlen und Buchstaben übrig
    5. Sub EntferneSonderzeichen(ByRef sb As StringBuilder)
    6. For i As Integer = sb.Length - 1 To 0 Step -1
    7. If Not Char.IsLetterOrDigit(sb(i)) Then sb.Remove(i, 1)
    8. Next
    9. End Sub