verneinte IF Schleife mit OR in der Bedingung

  • Hallo zusammen,

    ich weiß nicht warum mein Code nicht funktioniert, aber bestimmt gibt es auch eine elegantere Lösung.
    Bin wie immer für jede kreative Idee dankbar.

    [autoit]


    $ID = "W442525"
    If Not StringLeft($ID, 1) = "W" OR "H" OR "S" OR "Z" OR "M" OR "K" OR "F" OR "C" OR "E" Then
    MsgBox(0, "D.3-ID Agent", "Es handelt sich um keine gültige Identnummer.")
    $Fehler = 1
    Return
    EndIf

    [/autoit]

    Grüße
    CrazyER

    Einmal editiert, zuletzt von CrazyER (10. Juli 2012 um 17:32)

  • So ist es ein bisschen kürzer:

    [autoit]

    $ID = "W442525"
    If StringRegExp($ID, "^[^WHSZMKFCE]") Then
    MsgBox(0, "D.3-ID Agent", "Es handelt sich um keine gültige Identnummer.")
    $Fehler = 1
    Return
    EndIf

    [/autoit]


    Auf deine Art müsste es so gehn:

    Spoiler anzeigen
    [autoit]

    $ID = "A442525"
    If Not (StringLeft($ID, 1) = "W" OR StringLeft($ID, 1) = "H" OR StringLeft($ID, 1) = "S" OR StringLeft($ID, 1) = "Z" OR StringLeft($ID, 1) = "M" OR StringLeft($ID, 1) = "K" OR StringLeft($ID, 1) = "F" OR StringLeft($ID, 1) = "C" OR StringLeft($ID, 1) = "E") Then
    MsgBox(0, "D.3-ID Agent", "Es handelt sich um keine gültige Identnummer.")
    $Fehler = 1
    Return
    EndIf

    [/autoit]