bestimmte Zeichen aus String entfernen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von DerSmurf.

    bestimmte Zeichen aus String entfernen

    Aloa
    Ich speichere in meinem DateSet Daten zu einer Bestellung. Diese sind z.B. Bestelldatum, Rechnungsdatum, Rechnungsnummer, Rechnungssumme, etc.
    Nach dem Drag and Drop einer Datei auf mein Programm und der Auswahl "Rechnung" - wähle ich aus diesem DataSet einen Eintrag aus und bilde dann aus der Rechnungsnummer den Dateinamen, um die gedroppte Datei am richtigen Fleck innerhalb meiner Ordnerstruktur abzulegen.
    Das Problem hierbei ist aber, dass die Rechnungsnummer ja Zeichen enthalten könnte, die im Dateinamen verboten sind. Diese möchte ich entfernen.
    Ich habe dafür eine (funktionierende) Lösung:

    VB.NET-Quellcode

    1. Dim OriginalInvoiceNumber = SelectedInvoice.Rechnungsnummer
    2. Dim InvoiceNumber = ""
    3. For Each item In OriginalInvoiceNumber
    4. If item <> "\" And item <> "/" And item <> ":" And item <> "*" And item <> "?" And item <> """" And item <> "<" And item <> ">" And item <> "|" Then
    5. InvoiceNumber &= item
    6. End If
    7. Next

    Allerdings erscheint mir diese nicht wirklich gut.
    Kann man das entfernen der Zeichen verbessern?
    Falls Du Regex meiden willst, hier was aus meiner Extensions-Sammlung:

    VB.NET-Quellcode

    1. <Extension> Public Function RemoveCharacters(Text As String, CharactersToRemove As String) As String
    2. If String.IsNullOrEmpty(Text) Then Return Nothing
    3. Dim FinalText As New Text.StringBuilder
    4. For Each Character In Text
    5. If CharactersToRemove.Contains(Character) Then Continue For
    6. FinalText.Append(Character)
    7. Next
    8. Return FinalText.ToString
    9. End Function


    Und dann eben:

    VB.NET-Quellcode

    1. Dim DeinSichererText = DeinText.RemoveCharacters((Path.GetInvalidFileNameChars() & Path.GetInvalidPathChars()).ToArray.Distinct.ToArray)

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()