Input scannen und in einem anderen Input verändert wiedergeben

  • Hallo,
    Ich versuche im Moment ein kleines Tool zu scripten, das einen die Arbeit beim suchen von Codes etwas einfacher machen soll.
    Ich habe 2 Inputs.

    -

    1. Input: Eingabe
    In diesem Input kann ich etwas eingeben, wie in jedem anderen Input auch.

    -

    2. Input: Ausgabe
    In diesem Input soll ein veränderter Code aus Input1 ausgelesen werden.
    Nehmen wir als Beispiel:
    a=1
    b=2
    ...

    -

    ZIEL: Wenn ich in Input1 z.B, "a" eingebe, soll in Input2 "1" angezeigt werden.
    Ich hoffe, ihr konntet mir folgen, und mir vieleicht ein bischen helfen.
    Zur vereinfachung bin ich schon mal mit einem Script angefangen:

    -

    [autoit]

    #include
    #include
    #include
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 445, 159, 256, 244)
    $Eingabe = GUICtrlCreateInput("Eingabe", 32, 48, 121, 21)
    $Ausgabe = GUICtrlCreateInput("Ausgabe", 216, 48, 121, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    if GUICtrlRead($Eingabe) = "a" Then ;[IN $Ausgabe "1" ANZEIGEN]

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

    EndSwitch
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit]
    • Offizieller Beitrag

    Helfen kann man da schon, aber besser wäre noch eine Liste was gegen was ausgetauscht werden soll.

    Z.b:

    a=1
    b=2 .......

    Wenn ich alle Werte habe kann man das mit einem Array lösen, das spart viel Code.
    Edit: Soll Buchstabe für Buchstabe ausgetauscht werden?
    Edit2: Deine Includes sind für den A.....

    [autoit]

    #include <GUIConstantsEx.au3>

    [/autoit]
  • Das mit
    a=1
    b=2
    c=3
    ...
    ist nur ein Beispiel!
    In wirklichkeit sind die Codes viel komplizierter...
    da ist a=1306 und b=8015.
    Eine feste Reihenfolge gibt es da leider nicht.
    Du könntest mir aber doch bestimmt helfen, das nur Input1 ausgelesen wird, und in Input2 der Code dargestellt wird.
    Um die Zeit geht es nicht. Mach dir darum also keine Sorgen.
    MfG: MasterOfTime

    • Offizieller Beitrag
    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #cs **************************************************************************

    Input scannen und in einem anderen Input verändert wiedergeben

    http://www.autoit.de/index.php?page…9141#post129141

    #ce **************************************************************************

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 445, 159, 256, 244)
    $Eingabe = GUICtrlCreateInput("Eingabe", 32, 48, 121, 21)
    $Ausgabe = GUICtrlCreateInput("Ausgabe", 216, 48, 121, 21)
    $Button = GUICtrlCreateButton("Berechne", 150, 68, 80, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button
    $Temp = GUICtrlRead($Eingabe)
    GUICtrlSetData($Ausgabe, "")
    For $i = 1 To StringLen($Temp)
    $Temp2 = StringMid($Temp, $i, 1)
    If $Temp2 = "a" Then GUICtrlSetData($Ausgabe, GUICtrlRead($Ausgabe) & "1")
    If $Temp2 = "b" Then GUICtrlSetData($Ausgabe, GUICtrlRead($Ausgabe) & "2")
    If $Temp2 = "c" Then GUICtrlSetData($Ausgabe, GUICtrlRead($Ausgabe) & "3")
    If $Temp2 = "d" Then GUICtrlSetData($Ausgabe, GUICtrlRead($Ausgabe) & "4")
    Next

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

    EndSwitch
    WEnd

    [/autoit]

  • Respekt. Das funktioniert perfekt.
    Kann man das auch irgendwie mit einer Schleife machen, sodass man sich den "berechnen" Button sparen kann?

    • Offizieller Beitrag

    Ja kann man :

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #cs **************************************************************************

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

    Input scannen und in einem anderen Input verändert wiedergeben

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

    http://www.autoit.de/index.php?page…9141#post129141

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

    #ce **************************************************************************

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 445, 159, 256, 244)
    $Eingabe = GUICtrlCreateInput("", 32, 48, 121, 21)
    $Ausgabe = GUICtrlCreateInput("", 216, 48, 121, 21)
    $Button = GUICtrlCreateButton("Berechne", 150, 68, 80, 21)
    $ioldCount=0
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    If StringLen(GUICtrlRead($Eingabe)) <> $iOldCount Then
    $Temp = GUICtrlRead($Eingabe)
    GUICtrlSetData($Ausgabe, "")
    For $i = 1 To StringLen($Temp)
    $Temp2 = StringMid($Temp, $i, 1)
    If $Temp2 = "a" Then GUICtrlSetData($Ausgabe, GUICtrlRead($Ausgabe) & "1")
    If $Temp2 = "b" Then GUICtrlSetData($Ausgabe, GUICtrlRead($Ausgabe) & "2")
    If $Temp2 = "c" Then GUICtrlSetData($Ausgabe, GUICtrlRead($Ausgabe) & "3")
    If $Temp2 = "d" Then GUICtrlSetData($Ausgabe, GUICtrlRead($Ausgabe) & "4")
    Next
    $ioldCount= StringLen(GUICtrlRead($Eingabe))
    EndIf

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

    WEnd

    [/autoit]

  • Vielen Dank.
    Damit ist mein Problem jetz gelöst.

  • Ich würd es so machen:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    #cs **************************************************************************

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

    Input scannen und in einem anderen Input verändert wiedergeben

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

    http://www.autoit.de/index.php?page…9141#post129141

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

    #ce **************************************************************************

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

    Dim $Liste[6][2] = [["Letzter Text:",""],["a",1],["b",2],["c",3],["d",4],["e",5]]

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 445, 159, 256, 244)
    $Eingabe = GUICtrlCreateInput("Eingabe", 32, 48, 121, 21)
    $Ausgabe = GUICtrlCreateInput("Ausgabe", 216, 48, 121, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    _PruefeEingabe()
    WEnd

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

    Func _PruefeEingabe()
    Local $AusgabeString = GUICtrlRead($Eingabe), $EingabeString = GUICtrlRead($Eingabe)
    If GUICtrlRead($Eingabe) <> $Liste[0][1] Then
    For $i = 0 to UBound($Liste)-1
    $AusgabeString = StringReplace($AusgabeString,$Liste[$i][0],$Liste[$i][1])
    Next
    GUICtrlSetData($Ausgabe,$AusgabeString)
    $Liste[0][1] = GUICtrlRead($Eingabe)
    EndIf
    EndFunc

    [/autoit]
    • Offizieller Beitrag

    Hab ich vergessen zu erwähnen, die Beschriftung von $Eingabe muß leer bleiben.
    Also umbedingt

    [autoit]

    $Eingabe = GUICtrlCreateInput("", 32, 48, 121, 21)

    [/autoit]


    benutzen. Für die Beschriftung kannst du ja oberhalb der Input´s Label´s nehmen.

    Wenn das Thema gelöst ist, editiere deinen 1. Post und stelle ihn auf gelöst. :thumbup: