Page 1 sur 1
procedure avec paramétre sans type
Publié : lun. 01/mai/2017 17:37
par bebou007
Bonjour a tous, voila j'aimerai savoir si il est possible de crée une fonction avec des paramètres non définie?
je m'explique je doit passer plusieurs type de paramètre a cette fonction
exemple une fois c'est
une autre fois c'est
donc je pense passer par des pointeurs et un paramètre qui détermine le type après
Code : Tout sélectionner
procedure call("F:S:I",*p1,*p2,*p3)
if F peekF(*p1)
if S peekS(*p2)
if I peekI(*P3)
endprocedure
mais en gros je vais devoir choisir le type pour chaque paramètre en sachant que je peut avoir jusqu’à 15 paramètre et qu'il sont pas tous obligatoire
du coup j'aimerai savoir si cela est possible autrement
le macro fonctionne il n'a pas besoin d'avoir un type précis mais j'ai plus de 2000 fonction donc je risque d'avoir un code très lourd
merci
Re: procedure avec paramétre sans type
Publié : lun. 01/mai/2017 21:54
par microdevweb
Bonsoir,
Je sais qu'ne C c'est possible, mais avec purebasic je ne penses pas. Une solution éventuel ment passé un string et un deuxième paramètre qui défini le type, ensuite faire la conversion dans la procédure
Re: procedure avec paramétre sans type
Publié : lun. 01/mai/2017 22:18
par Zorro
le mieux c'est d'utiliser une structure !
ainsi tu peux travailler avec les types de variables que tu veux dans la procedure
il faudra simplement filtrer en fonction de ce que tu recuperes
Code : Tout sélectionner
Structure variables
chaine$
entier.i
flottant.f
EndStructure
Global variables.variables
Declare.f test(valeur)
; initialisation de la valeur des variables de la structure (les fameux parametres )
variables\chaine$="Toto"
variables\entier.i=18
variables\flottant.f=5.3
; ************ APPEL de la Procedure ************
debug Peeks(test(1)) ; recupere la chaine
debug int(test(2)) ; recupere l'entier
debug test(3) ;recupere le flottant
; *******************************************
Procedure.f Test(valeur)
Select valeur
Case 1 ; on veux la chaine
Procedurereturn @variables\chaine$
Case 2 ; on veux l'entier
Procedurereturn variables\entier.i
Case 3 ; on veux le flottant
Procedurereturn variables\flottant.f
Endselect
Endprocedure
Re: procedure avec paramétre sans type
Publié : mar. 02/mai/2017 9:23
par Fig
Tu copie colle deux fois ta procedure pour en faire deux procedures différentes et à l'appel, tu choisis celle que tu appelle. Pourquoi s'embêter la vie ? Pb n'est pas un langage objet.
Re: procedure avec paramétre sans type
Publié : mar. 02/mai/2017 10:46
par celtic88
Bonjour ,
Non tu peux pas.

Re: procedure avec paramétre sans type
Publié : mar. 02/mai/2017 18:12
par bebou007
merci a tous pour vos réponse
dans tous les cas donner on en reviens a la même chose
je pense que je vais allé au plus simple et partie sur l’idée de microdevweb "les strings"
si jamais un jour quelqu'un a besoin
je me sert des strings car on peut facilement sépare des éléments avec des délimiteur ":" ensuite suffit de donner le type puis la variable et de lire la string dans l'ordre type:valeur:type:valeur etc
Code : Tout sélectionner
"F:5.45:S:hello world:B:55"
ou alors
"F:5.45|S:hello world|B:55"
merci quand même pour vos réponse qui sont semblable a mon idée de départ
Re: procedure avec paramétre sans type
Publié : mar. 02/mai/2017 18:49
par JohnJohnsonSHERMAN
@majikeyric : Y'a pas un risque de corruption, voire même d'IMA (segfault) avec ce genre d'Union, vu que par exemple, un .a et un .f n'ont pas la même taille??
Re: procedure avec paramétre sans type
Publié : mar. 02/mai/2017 18:52
par majikeyric
Bein non l'union prend la taille du type le plus grand, c'est d'ailleurs tout l'intêret des unions

Re: procedure avec paramétre sans type
Publié : mar. 02/mai/2017 19:29
par JohnJohnsonSHERMAN
Re: procedure avec paramétre sans type
Publié : mar. 02/mai/2017 20:06
par Zorro
le plus dur c'est d'eplucher les unions sans pleurer ...
Re: procedure avec paramétre sans type
Publié : mer. 03/mai/2017 7:16
par Micoute
Jeu de mots tard
Re: procedure avec paramétre sans type
Publié : mer. 03/mai/2017 9:38
par Zorro
non, de mots laids

Re: procedure avec paramétre sans type
Publié : mer. 03/mai/2017 13:19
par JohnJohnsonSHERMAN
Vous vous trumpez, il s'agit de molles aires et d'un Sisyphe. on ne trouve cela qu'à Nines, à mi-dalle et si les gens civent.

Re: procedure avec paramétre sans type
Publié : mer. 03/mai/2017 16:14
par Kwai chang caine
Laaaaaa danse des moooooots...c'est la dansedansedanse des moooooots ...."