Page 1 sur 1

[R] Les fonctions à nombre variable de paramètres

Posté : sam. 20 déc. 2014 17:02
par sozary
Bonjour!!

Alors comme écris dans le sujet, comment créer une fonction avec en paramètre n éléments, en C j'ai trouvé mais sous AutoIt cela ne marche pas: http://openclassrooms.com/courses/les-f ... parametres

Re: [..] Les fonctions à nombre variable de paramètres

Posté : sam. 20 déc. 2014 17:41
par orax
Je ne pense pas que ce soit possible mais une confirmation serait préférable.
J'utiliserais un "array" pour faire ça :

Code : Tout sélectionner

Func multiplication(ByRef $resultat, $nombresAMultiplier)
    For $nombre In $nombresAMultiplier
        $resultat *= $nombre
    Next
EndFunc   ;==>multiplication

Local $variable = 1
Local $args[] = [2, 5, 3]
multiplication($variable, $args)
ConsoleWrite($variable & @CRLF)

Re: [..] Les fonctions à nombre variable de paramètres

Posté : sam. 20 déc. 2014 18:09
par Tlem
+1 pour la solution d'orax.

Sinon dans l'aide, lisez la documentation de la fonction Call (ou cliquez sur le lien ...) et lisez la section Remarks concernant "CallArgArray". ;)

Re: [..] Les fonctions à nombre variable de paramètres

Posté : sam. 20 déc. 2014 18:19
par aulus
Je crée une fonction intermédiaire :

IF GuiCtrlRead($monControle) = "xxx" Then Fonction(arguments)

ou encore :

if @GUI_CtrlId = $monControle Then Fonction(arguments)

Re: [..] Les fonctions à nombre variable de paramètres

Posté : sam. 20 déc. 2014 19:48
par orax
► Afficher le texte:mrgreen: StringSplit()

Re: [..] Les fonctions à nombre variable de paramètres

Posté : sam. 20 déc. 2014 20:50
par jguinch
Je partage l'idée du tableau. Une autre idée, dans la doc : https://www.autoitscript.com/autoit3/do ... s/Func.htm (voir exemple 2 avec @NumParams)

Re: [..] Les fonctions à nombre variable de paramètres

Posté : lun. 22 déc. 2014 10:59
par sozary
Merci pour toutes ces solutions!

En attendant j'avais moi aussi utilisé l'astuce du tableau! Juste donc jguinch, si j'ai bien compris, dans l'exemple 2, il faut définir tous les arguments possible (donc limités)?

Code : Tout sélectionner

Test_Numparams($v1 = 0, $v2 = 0, $v3 = 0, $v4 = 0, $v5 = 0, $v6 = 0, $v7 = 0, $v8 = 0, $v9 = 0, _
        $v10 = 0, $v11 = 0, $v12 = 0, $v13 = 0, $v14 = 0, $v15 = 0, $v16 = 0, $v17 = 0, $v18 = 0, $v19 = 0)

Re: [..] Les fonctions à nombre variable de paramètres

Posté : lun. 22 déc. 2014 14:05
par jguinch
Oui c'est ça l'idée, donc pas top pour ce que tu veux faire... Mais bon savoir quand même

Re: [..] Les fonctions à nombre variable de paramètres

Posté : lun. 22 déc. 2014 14:19
par mikell
De toute façon cette notion de paramètres optionnels à quantité variable n'existe pas en AutoIt, donc il faut contourner le pb
Ce que suggère jguinch est la solution la plus proche même si ça peut être un poil acrobatique à l'utilisation : un certain nombre de params obligatoires à valeur prédéfinie par défaut

Re: [..] Les fonctions à nombre variable de paramètres

Posté : mer. 24 déc. 2014 11:26
par sozary
Oui en effet!
Merci pour votre aide! Je crois que les tableaux vont rester mes amis pendant encore un peu de temps alors ;)