Ich hatte das problem das ich einen Functionsparameter machen wollte wie z.b beim
[autoit]FileOpen() ; 2. Parameter
[/autoit]also z.b
[autoit]FileOpen($file,1+16)
[/autoit]öffnet die datei im Writemode und im Binarymode.
also hab ich es so gemacht:
Spoiler anzeigen
#include <array.au3>
bsp1(1 + 2 + 16)
bsp2(1 + 2 +
Func bsp1($int)
[/autoit] [autoit][/autoit] [autoit]ConsoleWrite(@CRLF & @CRLF & "#### Beispiel 1 ###"&@CRLF)
[/autoit] [autoit][/autoit] [autoit]$aOptions = Split_To_Options($int)
If _ArraySearch($aOptions, 1) <> -1 Then _Func1()
If _ArraySearch($aOptions, 2) <> -1 Then _Func2()
If _ArraySearch($aOptions, 4) <> -1 Then _Func4()
If _ArraySearch($aOptions, <> -1 Then _Func8()
If _ArraySearch($aOptions, 16) <> -1 Then _Func16()
EndFunc ;==>bsp1
Func bsp2($int)
[/autoit] [autoit][/autoit] [autoit]ConsoleWrite(@CRLF & @CRLF & "#### Beispiel 2 ###"&@CRLF)
$aOptions = Split_To_Options($int)
For $i = 1 To UBound($aOptions) - 1
If $aOptions[$i] = 1 Then
ConsoleWrite(1 & "<-- war enthalten!" & @CRLF)
EndIf
Next
For $i = 1 To UBound($aOptions) - 1
If $aOptions[$i] = 2 Then
ConsoleWrite(2 & "<-- war enthalten!" & @CRLF)
EndIf
Next
For $i = 1 To UBound($aOptions) - 1
If $aOptions[$i] = 4 Then
ConsoleWrite(4 & "<-- war enthalten!" & @CRLF)
EndIf
Next
For $i = 1 To UBound($aOptions) - 1
If $aOptions[$i] = 8 Then
ConsoleWrite(8 & "<-- war enthalten!" & @CRLF)
EndIf
Next
For $i = 1 To UBound($aOptions) - 1
If $aOptions[$i] = 16 Then
ConsoleWrite(16 & "<-- war enthalten!" & @CRLF)
EndIf
Next
EndFunc ;==>bsp2
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func Split_To_Options($zahl)
$aBin = StringSplit(_IntToBin($zahl), "")
Dim $aOptions[1], $a
For $i = UBound($aBin) - 1 To 1 Step -1
$a += 1
If $aBin[$i] = 1 Then _ArrayAdd($aOptions, 2 ^ $a / 2)
;~ ConsoleWrite("$aBin[" & $i & "]= " & $aBin[$i] & @CRLF) ;Debug
Next
Return $aOptions
EndFunc ;==>Split_Int_To_Options
Func _IntToBin($Value); von BugFix
$bin = ''
Do
$bin = Mod($Value, 2) & $bin
$Value = Floor($Value / 2)
Until $Value = 0
Return $bin
EndFunc ;==>_IntToBin
Func _func1()
ConsoleWrite("die Funktion Nr. 1 wurde aufgerufen"&@crlf)
EndFunc ;==>_func1
Func _func2()
ConsoleWrite("die Funktion Nr. 2 wurde aufgerufen"&@crlf)
EndFunc ;==>_func2
Func _func4()
ConsoleWrite("die Funktion Nr. 4 wurde aufgerufen"&@crlf)
EndFunc ;==>_func4
Func _func8()
ConsoleWrite("die Funktion Nr. 8 wurde aufgerufen"&@crlf)
EndFunc ;==>_func8
Func _func16()
ConsoleWrite("die Funktion Nr. 16 wurde aufgerufen"&@crlf)
EndFunc ;==>_func16
Vieleicht braucht das ja jemand
Wenn ja viel spaß damit!
P.S.:(ist warscheinlcih umständlich gescriptet)