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

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
sozary
Niveau 6
Niveau 6
Messages : 274
Enregistré le : lun. 20 janv. 2014 19:17
Status : Hors ligne

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

#1

Message 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
Modifié en dernier par sozary le mer. 24 déc. 2014 11:26, modifié 1 fois.
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

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

#2

Message 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)
Modifié en dernier par orax le sam. 20 déc. 2014 19:39, modifié 2 fois.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#3

Message 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". ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

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

#4

Message 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)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

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

#5

Message par orax »

► Afficher le texte:mrgreen: StringSplit()
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

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

#6

Message 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)
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
sozary
Niveau 6
Niveau 6
Messages : 274
Enregistré le : lun. 20 janv. 2014 19:17
Status : Hors ligne

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

#7

Message 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)
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

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

#8

Message par jguinch »

Oui c'est ça l'idée, donc pas top pour ce que tu veux faire... Mais bon savoir quand même
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

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

#9

Message 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
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
sozary
Niveau 6
Niveau 6
Messages : 274
Enregistré le : lun. 20 janv. 2014 19:17
Status : Hors ligne

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

#10

Message 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 ;)
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
Répondre