nützliche funktionen!?

  • _IN liefert TRUE, wenn die erste variable gleich einer der weiteren ist, also im prinzip eine vereinfachung von:
    IF $V=$V1 OR $V=$V2 OR $V=$V3 usw...
    _IN(1,3,5,"11","abc")=False
    _IN("Test","abc",4,0x54)=False
    _IN(1,1,6,"abc")=True
    _IN("1",1)=True

    _MakeLong speichert 2 Werte in 1 Variable und mit _LoWord bzw. _HiWord bekommt man diese wieder.
    (hab eine DLL, welche mir als Return 2 Werte als Lo & HiWord zurückgibt)

    vielleicht findet einer verwendung dafür...

    lgE

    Spoiler anzeigen
    [autoit]

    Func _IN($V,$V1,$V2="",$V3="",$V4="",$V5="",$V6="",$V7="",$V8="",$V9="",$V10="",$V11="",$V12="",$V13="",$V14="",$V15="",$V16="",$V17="",$V18="",$V19="",$V20="")
    Local $L,$T[2]=[1,$V1]
    For $L=2 To 20
    If Eval("V" & $L) = "" Then ExitLoop
    ReDim $T[$L+1]
    $T[$L]=Eval("V" & $L)
    Next
    $T[0]=$L-1
    For $L=1 to $T[0]
    If $V=Eval("V" & $L) Then Return True
    Next
    Return False
    EndFunc

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

    Func _LoWord($DWord)
    If BitAND($DWord, 0x8000) = 0 Then
    Return BitAND($DWord, 0xFFFF)
    Else
    Return BitOR($DWord, 0xFFFF0000)
    EndIf
    EndFunc

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

    Func _HiWord($DWord)
    Return BitAND($DWord, 0xFFFF0000) / 0x10000
    EndFunc

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

    Func _MakeLong($LoWord, $HiWord)
    Return BitOR(BitAND($HiWord * 0x10000, 0xFFFF0000), BitAND($LoWord, 0xFFFF))
    EndFunc

    [/autoit]