Besimmte Strings komplett ersetzen in einer RichTextBox

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von v-go.

    Besimmte Strings komplett ersetzen in einer RichTextBox

    Hey Leute,
    Ich habe eine RichTextBox das eine Kombination aus normalem Text und UNicode enthält. Es sieht in etwa so aus:

    "Blablabla /u0063 /u0063 blablab
    blablabla /u0055 /u0023"

    Ich habe durhc Microsofts MSDN rausgefunden, wie man die /u0063 in richtige Zeichen und Buchstaben umwandeln kann. Ich muss all die Strings rausfiltern/rauspicken, die mit einem /u beginnen und sie in meine Konvertierungsfunktion/-Code stecken!

    Meine Frage ist nun: Wie erreiche ich das effizient und effektiv genug, durch eine komplette große RichTextBox zu suchen und all die Unicodes mit ihren jeweiligen richtigen Zeichen und Buchstaben zu ersetzen?

    Soll ich das mit RegEx versuchen? Oder soll ich die Zeichen iwie in ein Array einlesen oder so (hab aber keine AHnung wie das genau gehen würde und obs effizient genug ist)? Oder gibts da spezielle String Manipulations Methoden innerhalb von VB.NET, die für soclhe Zwekce geeignet sind?

    MisterCoder schrieb:

    normalem Text und UNicode
    Strings in .NET sind per Default Unicode-Strings.
    Üblicherweise geht das so:

    VB.NET-Quellcode

    1. Me.RichTextBox1.SelectionStart = 3
    2. Me.RichTextBox1.SelectionLength = 2
    3. Me.RichTextBox1.SelectedText = "xx"
    Falls das nicht gehen solltre, poste mal den RichText (oder ein signifikantes Beispiel) und was davon wodurch ersetzt werden soll.
    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!
    Achtung ungetestet, habs aus dem Kopf reingeschrieben:

    VB.NET-Quellcode

    1. Sub rtbÄndern()
    2. Dim rtbText as String = me.deineRichtextbox.text
    3. Dim index1 as Integer
    4. Dim sUnveraendert as String
    5. Dim sVeraendert as String
    6. Do
    7. index1 = rtbText.IndexOf("\u")
    8. sUnveraendert = "/u" & rtbtext.substring(index1,4)
    9. sVeraendert = sUnveraendert.replace("\u","")
    10. sVeraendert = Chr(sVeraendert)
    11. rtbText = rtbText.replace(sUnveraendert, sVeraendert)
    12. Loop Until rtbText.contains("\u") = False
    13. me.deineRichtextbox.text = rtbText
    14. End Sub


    Wenns nicht funktioniert, vielleicht ist es ja ein Denkanstoß :D
    Gibt sicher auch andere Möglichkeiten dies zu lösen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „v-go“ ()