Page 1 sur 4
plusieur return procedure (et procedure dll)
Publié : mer. 20/juin/2007 9:58
par Backup
pouvoir faire comme en GFA
Code : Tout sélectionner
; code de la dll
Procedure.s RempliTablo()
Dim tableau.s(5)
For t=0 To 5
tableau(t)="phrase"+Str(t)
ProcedureReturn tableau(t)
Next t
EndProcedure
qui retourne a chaque appel l'element suivant
ou bien
Code : Tout sélectionner
; code de la dll
ProcedureDLL.s RempliTablo()
Dim tableau.s(5)
For t=0 To 5
tableau(t)="phrase"+Str(t)
Next t
if tartampion
ProcedureReturn tableau(5) ,tableau(6)
else if toto
ProcedureReturn tableau(2) ,tableau(1)
endif
EndProcedure
dans ce dernier cas une recup aurai lieu de cette façon
a,b=RempliTablo()
et l'argument renvoyé en premier irai dans la variable a
et le deuxiemme dans la variable b
la Purebasic deviendrai puissant !!
pour retourner un ou plusieurs arguments dans des conditions
Publié : mer. 20/juin/2007 12:13
par lionel_om
Moi je ne susi pas trop d'accord, car on sort un peu du cadre de la programmation classique. L'avantage du basic c'est que qd on maitrise un peu, on peu commencer à toucher aux autres langages qui auront une philosophie proche.
Là on sort, car je ne connais pas de langage qui acceptent plusieurs valeurs de retour.
De plus, au niveau précompilateur ca doit être dur à concevoir car un ProcedureReturn dans un For et on ne sais pas combien de valeurs seront renvoyées, donc on ne peut pas éviter les débordements...
Y'a toujours la possibilité de passer un pointeur sur Structure pour récupérer plusieurs valeurs. C'est ce qui se fait dans tous les autres langages (ou sinon je n'en connais pas assez ailleurs

)
Lio

Publié : mer. 20/juin/2007 13:22
par Cls
Moi j'aime bien cette idée. Pouvoir faire comme en Python (la gestion des variables est totalement différentes qu'en Basic classique) :
ou même
Ca pourrait être plutôt sympa...
Publié : mer. 20/juin/2007 14:29
par Flype
moi je dirais oui c'est sympa et très puissant (python je connais bien, les listes c'est génial) mais en basic ou langage du genre ce n'est pas possible.
il faudrait pour çà que purebasic sache gérer des listes/ensembles or ce n'est pas le cas donc pas de 'moteur interne' pour pouvoir le faire.
sinon la méthode des structures est très bien aussi (moins flexible, plus de code mais fonctionne très bien) :
Code : Tout sélectionner
Structure PERSONNE
nom.s
prenom.s
age.l
EndStructure
Procedure.l GetPersonne(*personne.PERSONNE)
If *personne
*personne\nom = "Thierry"
*personne\prenom = "Dupond"
*personne\age = 29
ProcedureReturn #True
EndIf
EndProcedure
If GetPersonne(x.PERSONNE)
Debug x\nom
Debug x\prenom
Debug x\age
EndIf
Publié : mer. 20/juin/2007 14:49
par minirop
Cls a écrit :Moi j'aime bien cette idée. Pouvoir faire comme en Python (la gestion des variables est totalement différentes qu'en Basic classique) :
ou même
Ca pourrait être plutôt sympa...
il faut pas oublier que python est interprété et purebasic compilé
et si on utilise un compilateur pour python on perd ses avantages.
Publié : mer. 20/juin/2007 14:49
par Cls
C'est vrai que les structures sont très sympa également. Elles sont simples à mettre en oeuvre, très faciles d'accès et fonctionnent à merveille.
Mais Python a ça de bien et je reste plutôt emballé par le concept qu'une fonction puisse admettre plusieurs valeurs de retour, même si cela n'a pas forcément de véritable utilité puisqu'il y a toujours moyen de faire autrement...
Edit:
il faut pas oublier que python est interprété et purebasic compilé
Oui, ce sont 2 langages qui n'ont rien à voir.
Publié : mer. 20/juin/2007 15:11
par Flype
oui enfin python a son 'py2exe' qui compile... comme quoi c'est possible.
mais encore une fois avant de parler de retour multiples, il faudrait que les listes existent dans pure...
Publié : mer. 20/juin/2007 15:59
par Progi1984
De mémoire, py2exe n'est pas de compilation au sens du propre, il crée juste un package dans un exe contenant tous les py !
Publié : mer. 20/juin/2007 16:09
par Flype
ah oui ? peut-être, mais il me semble bien que depuis quelque temps il génére un vrai éxé 'standalone'.
par exemple BitTorrent est compilé avec py2exe...
enfin quoi qu'il en soit les listes ne sont pas l'apanage des langages interprétés. C# en a et il compile...
Publié : mer. 20/juin/2007 19:48
par Backup
lionel_om a écrit :car je ne connais pas de langage qui acceptent plusieurs valeurs de retour.
le GFA Basic !! un Basic !!! , étonnant non ?

Publié : jeu. 21/juin/2007 13:15
par lionel_om
Dobro a écrit :lionel_om a écrit :car je ne connais pas de langage qui acceptent plusieurs valeurs de retour.
le GFA Basic !! un Basic !!! , étonnant non ?

Je ne savais pas !
J'suis un jeune moi ...

Je ne connais pas tout ça, j'ai commencé au Quick Basic (qui est aussi vieux que moi !). Merci pour cette remarque DoBro, ca m'a permis de me cultiver un peu !!
Lio

Publié : jeu. 21/juin/2007 14:50
par Flype
@dobro
on pouvait retourner combien de valeurs avec GFA ?
2, 3, 4, sans limite réelle ?
Publié : ven. 22/juin/2007 3:41
par Backup
Flype a écrit :@dobro
on pouvait retourner combien de valeurs avec GFA ?
2, 3, 4, sans limite réelle ?
heu ! je viens de me rendre compte que j'ai peut etre dit une connerie, (ça ne serai pas la premiere ..

)
en relisant le manuel du GFA !!
je vais aprofondir la chose pour confirmer
la il est 4 heure 44 , je vais essayer de dormir . !!

[/b]
Publié : ven. 22/juin/2007 8:28
par lionel_om
Alors cette fête de la musique DoBro ? L'éclate ?
Moi à Compiègne à 00:00 y'avais plus personne dans les rues...

J'aurais du descendre sur Paris.
Lio
EDIT : Oops, je me suis trompé de POST... tant pis !
Publié : ven. 22/juin/2007 8:56
par Backup
lionel_om a écrit :Alors cette fête de la musique DoBro ? L'éclate ?
Moi à Compiègne à 00:00 y'avais plus personne dans les rues...

J'aurais du descendre sur Paris.
Lio
oui ! ça a ete sympath, tres intimiste, j'ai accompagné un pote qui a joué ses compos, dans un "Cybergame" , qui fait Bar sans alcools et les repas
entre deux set, j'aurai meme pus surfer sur le net ou jouer a world of warcraft !!
ça c'est tres bien passé, petit soirée cool , pas trop de monde, bref, cool !

o, a commencé a 20 heures , et fini a 1 heure du mat , le temps de papoter un peu, et de refaire la route (c'est a 2 heures de chez moi), il etait 4 heure !!
