Einzelne Zeichen ersetzen

  • Hallo zusammen,

    ich manipuliere mit einem Script DXF Dateien, lese also eine Datei Zeilenweise ein und gehe dann entsprechender IF-Bedingungen z.B. einen anderen Text aus als in der Origingaldatei steht.

    Beim Durchlauf der Datei möchte ich gleich "Sonderzeichen" richtig umsetzen. Das mache ich bisher mit dem Befehl Replace

    Nun würde ich das gerne in einem Durchlauf machen, z.B. mit dem Befehl StringRegExpReplace - den checke ich aber nicht!
    Habe mal folgendes probiert

    Kann mir jemand hierbei helfen?

    Vielen Dank schon mal!
    Gruß
    Steffen

    Einmal editiert, zuletzt von s.koni (9. Februar 2010 um 13:08)

    • Offizieller Beitrag

    Hi,

    der Ansatz mit StringReplace ist richtig. Regex ist hier langsamer. Kürzer würde es zum Beispiel so gehen.

    Spoiler anzeigen
    [autoit]

    Global $InString = "Daá šber asdšjfgjkh„43w5ý3498z hjfnblkjebnv97™0h3490h1fácp!"
    Global $ersetzen_A[8][2] = [["", "ü"],["„", "ä"],["”", "ö"],["š", "Ü"],["Ž", "Ä"],["™", "Ö"],["á", "ß"],["ý", "²"]]
    ConsoleWrite($InString & @CRLF)
    For $i = 0 To UBound($ersetzen_A) - 1
    $InString = StringReplace($InString, $ersetzen_A[$i][0], $ersetzen_A[$i][1])
    Next
    ConsoleWrite('!' & $InString & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    ; Ergebnis in Console:
    ; Daá šber asdšjfgjkh„43w5ý3498z hjfnblkjebnv97™0h3490h1fácp!
    ; Daß Über asdÜjfgjkhä43w5²3498z hjfnüblkjebnv97Ö0h3490h1fßcp!

    [/autoit]
  • Vielen Dank für die Antwort.

    komme wohl nicht daran vorbei jedes Zeichen für sich zu ersetzen - ob nun in einer Schleife oder einzeln aufgerufen!

    Trotzdem Danke!!!

    Gruß
    Steffen

  • nö drumrumkommen wirste nie. du willst ja auch die zeichen einzeln ersetzt haben. und da jedes zeichen durch ein anderes ersetzt wird muss mans so machen.

    aber wenns dich stört. klatsch das ganze doch in ein extra file und include es ;)