Serienummer einfügen (durch Bindestrich getrennt)

  • Hallo!

    Wenn man eine Seriennummer aus der Zwischenablage kopiert, die durch Bindestriche getrennt ist, wie sage ich AutoIt, dass der 1. Block ins Edit1-Feld gehört und so weiter. Hatte so was mal in einem Script gesehen...leider finde ich es nicht mehr.

    Gruß chicoray

    • Offizieller Beitrag

    Grundsätzlich so splitten:

    [autoit]

    $SN = StringSplit(ClipGet(), "-")
    For $i = 1 To $SN[0]
    GUICtrlSetData($Edit[$i], $SN[$i])
    Next

    [/autoit]

    Hab hierfür einfach mal angenommen, dass die Editfelder über eigenes Array erstellt sind ( k.A. wie das bei dir aussieht). Kannst du natürlich frei anpassen.

  • beispiel:


    1234-56-789


    [autoit]

    DIM $string[100] ; <-- besser zuviel als zu wenig *gg*

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

    $value = ClipGet()

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

    $string = StringSplit($value, "-")

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

    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 501, 313, 193, 115)
    $This = GUICtrlCreateLabel("Serial ", 56, 40, 24, 17)
    $Input1 = GUICtrlCreateInput("Input1", 56, 104, 65, 21)
    $Input2 = GUICtrlCreateInput("Input2", 144, 104, 73, 21)
    $Input3 = GUICtrlCreateInput("Input3", 232, 104, 97, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    GUICtrlSetData($Input1, $string[1])
    GUICtrlSetData($Input2, $string[2])
    GUICtrlSetData($Input3, $string[3])

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

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

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

    EndSwitch
    WEnd

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

    €€ : VERDAMMT, WIEDER ZU SPÄT!

    Einmal editiert, zuletzt von huggy (1. Mai 2007 um 18:01)

  • Hallo!

    Da ich Post von Alina bekommen habe, hier mal eine Ausfürliche Erklärung:

    Also: Die Seriennummer hat folgendes Format 1111-2222-3333-4444
    Bei manchen Programmen aktzeptiert das Programm die SN auch mit "-" und setzt sie nacheinander in das jeweilige Feld.

    Kurz: 1111 (Feld1) 2222 (Feld2) 3333 (Feld3) 4444 (Feld4)

    Dann gibt es aber Programme, die machen es nicht und setzen nur 1111 ins Feld1 und das war es. Danach muss man die anderen Nummer per "Copy+Paste" einfügen.

    Hoffe das war verständlicher.

    Gruß von hier nach da
    chicoary

    UUUUPPPPPSSSSSSS: Da warn ja welche schnell... :klatschen:

    Hallo:
    Danke erstmal für eure Mühe. Habe es dann so gelöst...hatte vergessen zu erwähnen, dass es sich um eine Unattended Inst. handelte. Mir fehlte nur der Befehl "StringSplit".

    $SN = StringSplit(ClipGet(), " ")
    ControlSend ( "Enter Serial", "", "Edit20", $SN[1])
    ControlSend ( "Enter Serial", "", "Edit21", $SN[2])
    ControlSend ( "Enter Serial", "", "Edit22", $SN[3])
    ControlSend ( "Enter Serial", "", "Edit23", $SN[4])
    ControlSend ( "Enter Serial", "", "Edit24", $SN[5])
    ControlSend ( "Enter Serial", "", "Edit25", $SN[6])

    Kann geschlossen werden...ich nicht wissen wie...

    2 Mal editiert, zuletzt von chicoray (1. Mai 2007 um 19:41)