textteile ersetzen

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von mikeb69.

    textteile ersetzen

    hallo,

    ich möchte alle umlaute und das scharfe s aus einer textbox umwandeln.
    folgender ansatz führt nicht wirklich zum ziel.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Me.TextBox1.Text = "qöwäeürß"
    4. End Sub
    5. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    6. Dim temp As String = Me.TextBox1.Text
    7. With temp
    8. temp = .Replace("ö", "oe")
    9. temp = .Replace("Ö", "Oe")
    10. temp = .Replace("ä", "ae")
    11. temp = .Replace("Ä", "Ae")
    12. temp = .Replace("ü", "ue")
    13. temp = .Replace("Ü", "Ue")
    14. temp = .Replace("ß", "ss")
    15. End With
    16. Me.TextBox1.Text = temp
    17. End Sub
    18. End Class

    hat jemand eine idee, wie ich das lösen könnte ? ?(

    gruss

    mikeb69
    müsste man bei den sonderzeichen nicht nach dem keycode gehen, da ja sonst vielleicht wenn keine sonderzeichen unterstützt werden nur solche kästchen angezeigt werden! aber sonst sollte deine methode doch eigentlcih funktionieren, wo ist denn das problem?
    Hi
    Das Problem hatte ich auch mal. Ich hab mich dann mit der normalen Replace-Funktion abgefunden:

    VB.NET-Quellcode

    1. TextBox1.Text = Replace(TextBox1.Text, "Ä","ae")
    2. TextBox1.Text = Replace(TextBox1.Text, "Ö","oe")
    3. TextBox1.Text = Replace(TextBox1.Text, "Ü","ue")
    4. TextBox1.Text = Replace(TextBox1.Text, "ä","ae")
    5. TextBox1.Text = Replace(TextBox1.Text, "ö","oe")
    6. TextBox1.Text = Replace(TextBox1.Text, "ü","ue")
    7. TextBox1.Text = Replace(TextBox1.Text, "ß","ss")


    Gruß
    ~blaze~
    hallo,

    @tobikubi,
    mein code funktioniert eben nicht.
    es wird nur das letzte zeichen in der codereihe ersetzt (in meinem fall ß-> ss)

    ich glaube es liegt daran, dass man für einen rückgabestring in .net immer eine neue instanz braucht.
    oder so ähnlich.

    @blaze,
    funktioniert - danke
    aber glücklich bin ich damit irgendwie nicht.

    danke

    mikeb69
    Auch wenns nix mit dem Thema zu tun hat, hier ein Tipp zum Sparen von Codezeilen:

    VB.NET-Quellcode

    1. Dim re() As String = "Ä-ae,Ö-oe,Ü-ue".Split(",")
    2. For i As Integer = 0 to re.Length
    3. TextBox1.Text = Replace(TextBox1.Text, re(i).Split("-")(0), re(i).Split("-")(1))
    4. Next


    Lg Chris

    e: 500. Beitrag....[Glückwunsch Chris - Danke]
    Wie schon bei VB@rchiv erwähnt Mike :D ,

    ich könnte mir durchaus vorstellen, dass with eine abfolge von befehlen bildet und erst beim verlassen der with anweisung diese ausführt. somit wären alle außer den letzten replace überschrieben.

    Gruß
    hallo nikolai,

    danke für deine antwort auf vbarchiv.

    ich hatte dort erst nachgefragt, als wir das thema hier schon geklärt hatten.
    ich wollte einfach eine schlüssige erklärung, welche ich auch bekommen habe.

    danke dir

    mikeb69
    hallo nikolai,

    brauchst du nicht.

    der beitrag im vbarchiv forum hat dann noch ein paar andere meldungen bekommen.
    sehr interessant !!!

    ich hab mich dann mal hingesetzt die von ralf angesprochene stringbuilder-klasse mit der normalen methode zu vergleichen.
    das ist dabei rausgekommen.

    stringbuilder vs normal

    gruss

    mikeb69