En PureBasic aussi, tu peux avoir plusieurs ProcedureReturn dans une procedure.Renvoi d'une valeur par une fonction
La fonction peut renvoyer une valeur (et donc se terminer) grâce au mot-clé return. Lorsque l'instruction return est rencontrée, la fonction évalue la valeur qui la suit, puis la renvoie au programme appelant (programme à partir duquel la fonction a été appelée).
Une fonction peut contenir plusieurs instructions return, ce sera toutefois la première instruction return rencontrée qui provoquera la fin de la fonction et le renvoi de la valeur qui la suit.
Wishlist - V4.0
D'après ce que j'ai vu, en php ou en PureBasic, pour les procédures, c'est pareil.
@Dri, merci mais j'ai toujours pas capté 
@Dobro, en gros tu veux un type Variant mais faut bien te dire que c'est la porte ouverte au "foutoir" dans les codes sources (suffit de voir du code VB6 :p).
En plus je suis persuadé que c'est pas un simple lifting du compilateur qu'il faudra faire et je crois que Fred a déjà pas mal de taff.

@Dobro, en gros tu veux un type Variant mais faut bien te dire que c'est la porte ouverte au "foutoir" dans les codes sources (suffit de voir du code VB6 :p).
En plus je suis persuadé que c'est pas un simple lifting du compilateur qu'il faudra faire et je crois que Fred a déjà pas mal de taff.
Vive le thread-safe !
+1LeCyb a écrit : @Dobro, en gros tu veux un type Variant mais faut bien te dire que c'est la porte ouverte au "foutoir" dans les codes sources (suffit de voir du code VB6 :p).
En plus je suis persuadé que c'est pas un simple lifting du compilateur qu'il faudra faire et je crois que Fred a déjà pas mal de taff.
tout le blem est la !!ce sera toutefois la première instruction return rencontrée qui provoquera la fin de la fonction et le renvoi de la valeur qui la suit .
tu trouve ça cool toi ?

moi je demande des retour de procedure simultanés !!
et pas ce goulot d'etranglement !
le type variant , n'est pas plus bordelique , c'est l'utilisation que l'on en fait !!
mais bon !!

ha bah ça c'est une info !!PHP et VB sont des langages interprêtés
PB est compilé
la différence se situe là


serieusement !
je demande donc procedure return simultanée
pouvoir entrer plusieurs parametres dans une procedure (comme maintenant)
et pouvoir recuperer plusieurs valeurs de nature differentes en sortie de procedure serai un super truc !!
Code : Tout sélectionner
procedure return a.b,b.w,c.l,t$,e.f
c'est ma demande au pere noel !

oui ta solution est employé dans l'omicron basic ! 
sinon on pourrai avoir

sinon on pourrai avoir
Code : Tout sélectionner
Procedure test (a,b,c)
e=a*b
f=b*c
g=a*c
ProcedureReturn e,f,g ; sert a signaler a purebasic
EndProcedure
e,f,g=test (2,5,6)
; e=10
; f=30
; g=12
En Pascal, lorsque l'on utilise une syntaxe particulière (var), la procédure renvoie les paramètres dans les arguments entrants.
En gros, ça donnerait
En gros, ça donnerait
Code : Tout sélectionner
procedure maproc(toto, var titi, tutu)
toto+1
titi+1
tutu+1
endprocedure
;***
toto.l=0
titi.l=0
tutu.l=0
maproc(toto, titi, tutu)
debug toto ;toto=0
debug titi ;titi=1
debug tutu ;tutu=1
sinon pour les procedures : on pourrait faire comme ca :
Sinon, faire comme ca :
et automatiquement, lorsque l'on appelle la fonction Move_Unit, X et Y sont envoyés, l'ordi fait le calcul, et renvoi tout simplement les nouvelles valeurs dans X et Y. Si vous preferez dans la procedure, il s'agirait simplement de tampon Xs et Ys.
aussi ne pas oublier de mettre tous les caracteres ASCII correctement dans purebasic !
Voila![/code]
Code : Tout sélectionner
...
Move_Unit ( X, Y)
...
procedure Move_Unit(Xs,Ys)
procedurereturn Xs,Ys
endprocedure
Code : Tout sélectionner
procedure Move_Unit(Xs,Ys)
...
endprocedure
aussi ne pas oublier de mettre tous les caracteres ASCII correctement dans purebasic !
Code : Tout sélectionner
structure unite.l
temptab (x,y,z, ...) <= ca serait bien ca aussi !
endstructure
l'avantage de ma methode
c'est justement de separer les entrées et les sorties !!
de cette façon aucune contraintes !!
car on peut avoir des entrées qui soient TYPés de façon diferente de la sortie !
et puis les donnees entrées peuvent ne rien avoir a faire avec les sorties !
par exemple en fonction de calcul de valeurs d'entrés ont peut avoir des variables chaines qui nous sortirai en clair , un message !!
c'est un exemple ....
je pense que la methode que je donne est la plus libre de ce qu'on pourrai faire de cette facilité !!
et puis les valeur de sorties peuvent etre plus nombreuses que les valeurs (ou chaine) d'entrées !
@bernard13
Franchement prend la peine de lire le topic depuis le debut !!
Code : Tout sélectionner
Procedure test (a,b,c)
e=a*b
f=b*c
g=a*c
ProcedureReturn e,f,g ; sert a signaler a purebasic
EndProcedure
e,f,g=test (2,5,6)
; e=10
; f=30
; g=12
de cette façon aucune contraintes !!
car on peut avoir des entrées qui soient TYPés de façon diferente de la sortie !
et puis les donnees entrées peuvent ne rien avoir a faire avec les sorties !
par exemple en fonction de calcul de valeurs d'entrés ont peut avoir des variables chaines qui nous sortirai en clair , un message !!
c'est un exemple ....

je pense que la methode que je donne est la plus libre de ce qu'on pourrai faire de cette facilité !!

et puis les valeur de sorties peuvent etre plus nombreuses que les valeurs (ou chaine) d'entrées !

@bernard13
Franchement prend la peine de lire le topic depuis le debut !!