procedure avec paramétre sans type

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
bebou007
Messages : 79
Inscription : dim. 06/mars/2005 20:18

procedure avec paramétre sans type

Message 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

Code : Tout sélectionner

call(float,integer,string)
une autre fois c'est

Code : Tout sélectionner

call(string,string,float)
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
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: procedure avec paramétre sans type

Message 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
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: procedure avec paramétre sans type

Message 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
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: procedure avec paramétre sans type

Message 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.
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: procedure avec paramétre sans type

Message par celtic88 »

Bonjour ,
Non tu peux pas. :)
.....i Love Pb :)
bebou007
Messages : 79
Inscription : dim. 06/mars/2005 20:18

Re: procedure avec paramétre sans type

Message 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
Avatar de l’utilisateur
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: procedure avec paramétre sans type

Message 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??
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Avatar de l’utilisateur
majikeyric
Messages : 602
Inscription : dim. 08/déc./2013 23:19
Contact :

Re: procedure avec paramétre sans type

Message par majikeyric »

Bein non l'union prend la taille du type le plus grand, c'est d'ailleurs tout l'intêret des unions :mrgreen:
Avatar de l’utilisateur
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: procedure avec paramétre sans type

Message par JohnJohnsonSHERMAN »

:P 8)
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: procedure avec paramétre sans type

Message par Zorro »

le plus dur c'est d'eplucher les unions sans pleurer ...
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: procedure avec paramétre sans type

Message par Micoute »

Jeu de mots tard
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: procedure avec paramétre sans type

Message par Zorro »

non, de mots laids :mrgreen:
Avatar de l’utilisateur
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: procedure avec paramétre sans type

Message 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. :mrgreen:
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: procedure avec paramétre sans type

Message par Kwai chang caine »

Image

Laaaaaa danse des moooooots...c'est la dansedansedanse des moooooots ...."
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre