2 kleine Fragen

  • Ich wollte einen kleinen Calcer scripten und es gibt 2 Probleme:

    1. Wenn ich eine GuictrlcreateCombo erstelle, die folgendermassen aussieht.

    Code
    $combo = GUICtrlCreateCombo("",100,0,50,5,$CBS_DROPDOWNLIST)
    GUICtrlSetData(-1,"+|-|/|*","+")

    Wenn ich das Script starte, kann ich die Sachen auswaehlen. Bis dahin OK.
    Wie kann ich aber abfragen, welche Option gerade gewaehlt ist? --> Geloest
    Ich hab es so versucht, es ging aber nicht richtig.

    Code
    if $combo = "+" Then
    ...
    endif


    2. Bei der Eingabe in den Guictrlcreateinput, wollte ich abfragen, ob die Eingabe auch wirklich nur aus Zahlen besteht. Doch wie kann ich den Punkt als ausnahme definieren? --> geloest Ich habs so gemacht:

    Spoiler anzeigen

    3. Wie mache ich das mit Sonderzeichen?

    Code
    $Num1 = StringRegExp($xr, "([A-Z/a-z])", 2)

    --> gibt es eine Definition fuer Sonderzeichen? (:#@()&^%...)

    Waere ueber schnelle Antworten dankbar.

    Einmal editiert, zuletzt von der Scripter (6. April 2009 um 16:31)

  • Erstmal Willkommen.... :)
    bei deiner ersten frage würde ich switch emphelen, das ist einfacher...
    aber um eine Combobox auszulesen musst du auch guictrlread nehmen also...

    [autoit]


    switch Guictrlread($combo)
    case "+"
    ;do irgendwas
    case "-"
    ;mach irgendwas
    case "/"
    ;mach sonstwas
    case "*"
    ;mach was anderes
    endswitch

    [/autoit]


    greez NoNever

  • @NoNever -- Danke
    zu 2.
    StringIsFloat("2"); returns 0 since '2' is an interger, not a float --> Dann kann man ja keine geraden Zahlen angeben oder?

    StringIsInt("1.0") ;returns 0 due to the decimal point --> Da kann man kein Punkt setzen

  • ich würd sagen da bleibt nur stringregexp übrig was???
    is mir ja jetzt auch peinlich :whistling: aber frag mal bugfig oder so....
    ich kann mit regexp nich umgehen....
    wenn du stringregexp nimmst kannst du sogar bestimmen wie oft der punkt sein darf
    /edit hab mal was versucht:

    [autoit]

    stringregexp($deinstring, (?<[1-9]{.})

    [/autoit]

    Einmal editiert, zuletzt von NoNever (6. April 2009 um 09:42)

  • Ich hätte das jetzt so gemacht:

    [autoit]


    $Zahl = "13754"

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

    $Num = StringRegExp($Zahl, "([A-Z/a-z])", 2)
    $Dot = StringRegExp($Zahl, "([1-9]*\.[1-9]*)", 2)

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

    If Not IsArray($Num) Then
    If IsArray($Dot) Then
    MsgBox(0, "", "Ohne Buchstaben mit Punkt")
    Else
    MsgBox(0, "", "Ohne Buchstaben, ohne Punkt")
    EndIf
    EndIf

    [/autoit]

    Lg,

    Lenny

    Jaja, Moo does the Cow!