String in einzelne Zeichen zerlegen und verändert zusammen legen

  • Der Titel sagt eig schon faste alles, ich will das wenn man z.b. in eine Inputbox schreibt "Hallo", das mein script das "Hallo" zerlegt. Also -> H a l l o das könnte man ja dann mit arrays machen weil ja nicht jedes wort gleich viel buchstaben hat ;). Dann soll das script z.b. machen H = 1 a = 2 l =3 o=4 und das dan in der richtigen reihenfolge zusammenlegen: Also: 12334

    Hab schon nen bissel mit StringSplit getüftelt aber zu kein ergebniss gekommen...

    PS: Noch nen Beispiel:
    z.b.
    AutoIT

    geg. ist:
    a = 2
    u = 6
    t = 22
    o = 0
    i = 87

    Also sollte das script dan am ende wiedergeben: 262208722 ^^

    Hoffe das ist so verständlich genung ;)

  • Joar etwa sowas?

    Spoiler anzeigen
    [autoit]

    Local $endstring
    $string = "Hallo"
    For $i = 1 To StringLen($string)
    $midstring = StringMid($string, $i, 1)
    Select
    Case $midstring = "h"
    $newstring = "1"
    Case $midstring = "a"
    $newstring = "2"
    Case $midstring = "l"
    $newstring = "3"
    Case $midstring = "o"
    $newstring = "4"
    EndSelect
    $endstring &= $newstring
    Next
    MsgBox(0, "Newstring", $endstring)

    [/autoit]


    Geht zwar is aber total umständlich aber mir ist zu dieser späten stunde (01:19) nix besseres eingefallen =)

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • ahh doch :D

    Spoiler anzeigen
    [autoit]

    $string = "Hallo"
    $string = StringReplace($string, "h", "1")
    $string = StringReplace($string, "a", "2")
    $string = StringReplace($string, "l", "3")
    $string = StringReplace($string, "o", "4")
    MsgBox(0, "Newstring", $string)

    [/autoit]


    Jetzt ist es 01:21 :D und mir kommen so langsam ideen is aber auch noch umständlich :D aber naja

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • THX, ich hab auch erst das das übelst einfach ist. Aber wenn man nicht die ganzen string dingerze so kennt.... ^^

    • Offizieller Beitrag

    Ein Einzeiler gefällig ? ;)

    [autoit]

    MsgBox(0, "Newstring", StringReplace(StringReplace(StringReplace(StringReplace("Hallo", "h", "1"), "a", "2"), "l", "3"), "o", "4"))

    [/autoit]

    Da du es aber sicher mit vorher nicht bekannten Wörtern unterschiedlicher Zeichenlänge zu tun hast, empfehle ich die Verwendung eines Array oder hier sogar besser eines Object.Dictionary um die Buchstaben-Ersatzzeichen Zuordnung zu speichern.