Ist es möglich zwei buchstaben miteinander Auszutauschen?

  • Hi @ all,
    ich will mal wieder mein wissen etwas erweitern.
    ich frage mich jetzt schon länger ob es möglich ist
    zwei buchstaben miteinander auszutauschen.
    also z.B. :
    In einer .txt datei steht jetzt:
    "wroou"
    ich öffne diese in einer gui
    und autoit soll dann anstadt "wroou" "hallo" in ein edit feld reinschreiben.
    also würde
    w für h stehen, r für a, o für l und u für o stehen.
    geht so etwas?
    MfG Roggazzz

  • StringReplace () zuerst zu einem nicht vorkommenden Zeichen (zB Steuerzeichen über Chr ()) dann nochmal zum richtigen Buchsteben.

    MfG. tobi_girst

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tobi_girst« (Morgen, 25:63)

  • hi,
    ja in der tat das ist sehr einfach ^^
    schau dir den Befehl :

    [autoit]

    StringReplace

    [/autoit]


    an (bei problemen sollte die AutoIT hilfe dich unterstützen ;))
    EDIT: .. irgendwie bin ich immer ein stückchen zu langsam :whistling:

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • danke.
    könntest du mir noch ein beispiel machen? kenne mich mit Stirngreplace() nicht aus.
    edit:
    grad gemekrt das ich ind er hildfe was finde ich melde mich bei problemen.
    ich habe noch eine frage:
    wen ich jetzt in das edit feld "hallo" schreibe und es umwandeln will muss ich das nur umgekehrt amchen oder?

  • so ein problem ist aufgetaucht.
    Wie wende ich Stringreplace in dem edit feld an?
    ich habe versucht ein a in ein r umzuwandeln aber es geht nicht.
    hier der code:

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("NextGenEditor", 637, 457, 192, 124)
    $Edit = GUICtrlCreateEdit("", 0, 0, 633, 433)
    $M1 = GUICtrlCreateMenu("Datei")
    $M1_2 = GUICTRLCREATEMENUITEM("Öffnen",$M1)
    $M2 = GUICtrlCreateMenu("Info")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $M1_2
    $Open=FileOpenDialog("Öffnen","","NextGenEditor Dateien(*.nge)")
    $Open2=FileRead($Open)
    $WriteinEdit= GUICtrlSetData($Edit,$Open2)
    StringReplace($Edit,"a","r")

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

    EndSwitch
    WEnd

    [/autoit]


    Woran liegt das?
    MfG Roggazzz

  • Hallo rogazz,

    mach es so:

    [autoit]

    StringReplace(GUICtrlRead($Edit),"a","r",0)

    [/autoit]

    $Edit ist eine Variable die die ControlId enthält, um den Wert des Controls auszulesen must du GuiCtrlRead(ContolID) nehmen,

    mfg (Auto)Bert

  • danke autobert ich habe es versucht aber es klappt einfach nicht.
    das a in meinem text wird einfach nicht zu einem r.
    zur sicherheit der code wie er jetzt ist:

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("NextGenEditor", 637, 457, 192, 124)
    $Edit = GUICtrlCreateEdit("", 0, 0, 633, 433)
    $M1 = GUICtrlCreateMenu("Datei")
    $M1_2 = GUICTRLCREATEMENUITEM("Öffnen",$M1)
    $M2 = GUICtrlCreateMenu("Info")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $M1_2
    $Open=FileOpenDialog("Öffnen","","NextGenEditor Dateien(*.nge)")
    $Open2=FileRead($Open)
    $WriteinEdit= GUICtrlSetData($Edit,$Open2)
    StringReplace(GUICtrlRead($Edit),"a","r",0)

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

    EndSwitch
    WEnd

    [/autoit]


    Danke schonmal im vorraus.

  • Hallo rogazz,

    sorry den geänderten Text muss man natürlich auch wieder mit GuiCtrlSetData zurückschreiben (dachte den Befehl kennst du schon)

    [autoit]

    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"a","r",0))

    [/autoit]

    mfg (Auto)Bert

  • so danke ich habe jetzt versucht eine Ver-/Entschlüssler zu machen.
    wen ich verschlüssle oder entschlüssle kommt völliger schrott raus.
    hier der code:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Text Ver-/Entschlüssler", 388, 248, 194, 124)
    $Edit = GUICtrlCreateEdit("", 0, 0, 289, 113)
    GUICtrlSetData(-1, "Edit1")
    $Button1 = GUICtrlCreateButton("Verschlüsseln", 288, 0, 91, 105, 0)
    $Edit1 = GUICtrlCreateEdit("", 0, 128, 289, 113)
    GUICtrlSetData(-1, "Edit2")
    $Button2 = GUICtrlCreateButton("Entschlüsseln", 288, 128, 91, 105, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"a","c",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"b","r",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"c","a",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"d","u",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"e","f",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"f","e",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"g","x",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"h","j",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"i","q",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"j","h",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"k","v",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"l","n",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"m","p",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"n","l",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"o","w",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"p","m",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"q","i",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"r","b",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"s","t",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"t","s",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"u","d",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"v","k",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"w","o",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"x","g",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"y","z",0))
    GuiCtrlSetData($Edit,StringReplace(GUICtrlRead($Edit),"z","y",0))

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

    Case $Button2
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"c","a",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"r","b",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"a","c",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"u","d",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"f","e",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"e","f",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"x","g",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"j","h",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"q","i",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"h","j",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"v","k",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"n","l",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"p","m",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"l","n",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"w","o",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"m","p",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"i","q",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"b","r",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"t","s",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"s","t",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"d","u",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"k","v",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"o","w",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"g","x",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"z","y",0))
    GuiCtrlSetData($Edit1,StringReplace(GUICtrlRead($Edit1),"y","z",0))

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

    EndSwitch
    WEnd

    [/autoit]
  • Hallo Roggazz,

    dadurch dass du alles nacheinander machst, tauscht du bereits getauschte, such dir also einen anderen Ansatz z.B. switch .. case .. endswitch, oder benutze einfach eine Fertige Funktion.
    Auch die Sufu könnte nützlich sein

    mfg (Auto)Bert

  • Hallo Roggazz,

    ja du benutzt switch aber für die Tastenabfrage nicht für die zu tauschenden Buchstaben benutze eine Schleife und switche darin für jeden Buchstaben, ausserdem solltest du mal lernen mit der Hilfe bzw. Sufu umzugehen bzw. auch andere Threads mit ähnlichen Themen lesen. Das bedeutet für mich das Thema ist erledigt (zwei Buchstaben werden getauscht => Thema gelöst)

    mfg (Auto)Bert