Input Feld überprüfen

  • Ich habe ein Input feld in meiner selbs gemachten GUI. Dieses soll überprüft werden auf min 3 buchstaben inclusive leerer Inhalt.

    Doch wie? Welche befehle sind zu verwenden?

    Hir mal der Code haber code für die die danach fragen:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=d:\jagtskript.exe\sicherung der forms mit koda\formcharanlegen.kxf
    $Form1_1 = GUICreate("Menü zum Char Anlegen", 493, 509, 193, 125)
    GUISetBkColor(0x3D95FF)
    $Label1 = GUICtrlCreateLabel("Willkommen bei dem Einstigs-Tool des JagdSkriptes!", 32, 16, 425, 24)
    GUICtrlSetFont(-1, 12, 800, 4, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("1. Name:", 32, 70, 65, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Input1 = GUICtrlCreateInput("", 112, 70, 209, 21)
    GUICtrlSetCursor (-1, 5)
    GUISetState(@SW_SHOW)
    $Label3 = GUICtrlCreateLabel("zb. Findecano (keine Titel und Orte)", 112, 104, 173, 17)
    $Label4 = GUICtrlCreateLabel("Nur ein einzigen Teil des Namens Eintragen!", 112, 128, 213, 17)
    $Speichern = GUICtrlCreateButton("Speichern", 400, 432, 75, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()

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

    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Speichern
    $Name = GuiCtrlRead($Input1 )
    Dim $ifname = "if " & $Name & " in #CHARNAME"
    ;If $Input = "" Then Exit
    ;If InputBox ( "Frage", "Wie ist ihr Name?") = "" Then
    ;If Guictrlread(StringRegExp($Input1," ","")) < 3 Then
    ;StringRegExp()
    ;MsgBox(64,"Achtung! :)", "Sie haben vergessen etwas einzutragen!")
    ;If StringLen(StringReplace($Input1," ","")) < 3 Then
    ;MsgBox(0,"","Kleiner als 3")
    ;If $Input1 = "" Then
    StringRegExpReplace($Input1, '\w', '')
    If @extended < 3 Then

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

    MsgBox(16,"Warnung" , "Es wurde kein Name eingetragen min 3 Zeichen benuzen!", 10 )
    Else
    If FileExists(@ScriptDir & '\Charsammlung.txt') Then
    $file = FileOpen ( "Charsammlung.txt", 1 )

    If $file = -1 Then
    MsgBox(0, "Error", "Kann Datei nicht Öffnen!")
    Exit
    EndIf

    Dim $zu = "{"
    (........)
    EndIf
    EndIf
    Else
    MsgBox(16,"Warnung" , "SkriptPathangaben.txt does NOT exists" , 5)
    EndIf
    EndIf


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

    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • Das was Du suchst ist: GUICtrlSetLimit(-1,3) ; Beschränkt die Zahl der Zeichen/Pixel für ein Steuerelement. GUICtrlSetLimit ( controlID, max [, min] )

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    • Offizieller Beitrag

    Skar. Wenn ich dein Problem richtig versteanden habe, willst du überprüfen, ob der Inhalt der Input mindetsens 3 Zeichen lang ist?

    Ich würde dafür StringLen benutzen.

    Edit hier mal in deinem Script eingebaut:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=d:\jagtskript.exe\sicherung der forms mit koda\formcharanlegen.kxf
    $Form1_1 = GUICreate("Menü zum Char Anlegen", 493, 509, 193, 125)
    GUISetBkColor(0x3D95FF)
    $Label1 = GUICtrlCreateLabel("Willkommen bei dem Einstigs-Tool des JagdSkriptes!", 32, 16, 425, 24)
    GUICtrlSetFont(-1, 12, 800, 4, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("1. Name:", 32, 70, 65, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Input1 = GUICtrlCreateInput("", 112, 70, 209, 21)
    GUICtrlSetCursor(-1, 5)
    GUISetState(@SW_SHOW)
    $Label3 = GUICtrlCreateLabel("zb. Findecano (keine Titel und Orte)", 112, 104, 173, 17)
    $Label4 = GUICtrlCreateLabel("Nur ein einzigen Teil des Namens Eintragen!", 112, 128, 213, 17)
    $Speichern = GUICtrlCreateButton("Speichern", 400, 432, 75, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()

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

    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Speichern
    $Name = GUICtrlRead($Input1)
    Dim $ifname = "if " & $Name & " in #CHARNAME"
    ;If $Input = "" Then Exit
    ;If InputBox ( "Frage", "Wie ist ihr Name?") = "" Then
    ;If Guictrlread(StringRegExp($Input1," ","")) < 3 Then
    ;StringRegExp()
    ;MsgBox(64,"Achtung! :)", "Sie haben vergessen etwas einzutragen!")
    ;If StringLen(StringReplace($Input1," ","")) < 3 Then
    ;MsgBox(0,"","Kleiner als 3")
    ;If $Input1 = "" Then
    StringRegExpReplace($Input1, '\w', '')
    If StringLen($Name) < 3 Then
    MsgBox(16, "Warnung", "Es wurde kein Name eingetragen min 3 Zeichen benuzen!", 10)
    ContinueCase
    Else
    If FileExists(@ScriptDir & '\Charsammlung.txt') Then
    $file = FileOpen("Charsammlung.txt", 1)

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

    If $file = -1 Then
    MsgBox(0, "Error", "Kann Datei nicht Öffnen!")
    Exit
    EndIf

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

    Dim $zu = "{"

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

    Else
    MsgBox(16, "Warnung", "SkriptPathangaben.txt does NOT exists", 5)
    EndIf
    EndIf
    EndSwitch
    WEnd

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