_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
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
Func _LoWord($DWord)
If BitAND($DWord, 0x8000) = 0 Then
Return BitAND($DWord, 0xFFFF)
Else
Return BitOR($DWord, 0xFFFF0000)
EndIf
EndFunc
Func _HiWord($DWord)
Return BitAND($DWord, 0xFFFF0000) / 0x10000
EndFunc
Func _MakeLong($LoWord, $HiWord)
Return BitOR(BitAND($HiWord * 0x10000, 0xFFFF0000), BitAND($LoWord, 0xFFFF))
EndFunc