eine Funktion mit "n" Parametern

  • hi... ich hab ne funktion bei der die ersten 4 parameter immer fest stehen... jetzt kommen aba die optionellen parameter... also die "n"-ten parameter bei der die anzahl der parameter immer variiert... also zb wie beim BitXOR...

    gibts da nen makro oder muss ich tatsächlich 255 parameter mit = "" angeben?

  • häää..???
    ich hab jetzt nur verstanden das du dir ne eigene Func gemacht hast du jetzt ein paar Parameter optional sind..

    und ich check net warum du das jetzt hier rein postest wenn das doch klaar ist..
    oder is was anderes O.ô

    wie wärs ma wenn du code reinpostest??

    • Offizieller Beitrag

    Ich denke mal, du meinst sowas:

    [autoit]

    Local $aParam[3] = [$FOREGROUND_RED,$FOREGROUND_GREEN,$FOREGROUND_BLUE]
    _BlaBla($hConsole, $aParam)

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

    Func _BlaBla($handle, ByRef $aParam)
    Local $iFlag = 0
    For $i = 0 To UBound($aParam) -1
    $iFlag = BitOR($iFlag, $aParam[$i])
    Next
    SetConsoleTextAttribute($handle, $iFlag)
    EndFunc

    [/autoit]

    @ jiyan006 : Überlege bitte, wie du die User hier ansprichst. Der Ton macht bekanntlich die Musik. ;)

  • @jiyan006: wenn man eine frage nicht versteht hat man 2 möglichkeiten: 1. man fragt zum besseren verständniss nach, 2. man antwortet einfach gar nich drauf...

    also hier ma der kopf meiner momentanen func:
    _Code($CC_Mode, $CC_String, $CC_VName = "", $CC_NName = "")

    so.. nun willichs aba so verändern das man x beliebige parameter angeben kann:
    _Code($CC_Mode, $CC_String, [$CC_Param001, $CC_Param002, ... , $CC_Param00n])

    vorher in ein array übergeben will ich nicht, da ich wirklich einen eigenständige funktion haben will ohne das ich vorher ein array erstelle...
    ne andere frage: verlangsamt es das programm wenn ich zb _Code($CC_Mode, $CC_String, $CC_Param001 = "", $CC_Param002 = "", hier die weiteren 97 , $CC_Param100 = "") allles ausschreibe?

    • Offizieller Beitrag

    vorher in ein array übergeben will ich nicht, da ich wirklich einen eigenständige funktion haben will ohne das ich vorher ein array erstelle...

    Dann bleibt dir nur alle möglichen Parameter als optinal vorab zu definieren.

    verlangsamt es das programm wenn ich zb _Code($CC_Mode, $CC_String, $CC_Param001 = "", $CC_Param002 = "", hier die weiteren 97 , $CC_Param100 = "") allles ausschreibe?

    Die optionalen Parameter an sich werden wohl nicht die Geschwindigkeit beeinträchtigen - aber du mußt ja in der Funktion überprüfen, ob diese belegt sind und ggf. darauf reagieren. Das wird natürlich Zeit kosten. Zumal ohne Array eine Schleifenbearbeitung nicht so toll zu realisieren ist.

  • Mit der Funktion von progandy _ParseCMDLine kannst du jeder Funktion einen einzigen String als Parameter übergeben in der beliebig viele Variablen mitgereicht werden können ohne mit Optionalen Werten zu arbeiten.