plusieur return procedure (et procedure dll)

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

plusieur return procedure (et procedure dll)

Message 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 !! :D



pour retourner un ou plusieurs arguments dans des conditions
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message 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 :o )

Lio :)
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message 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) :

Code : Tout sélectionner

> a = (0, 1, 5)
ou même

Code : Tout sélectionner

> b = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
Ca pourrait être plutôt sympa...
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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
Image
minirop
Messages : 321
Inscription : mer. 02/août/2006 21:06

Message 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) :

Code : Tout sélectionner

> a = (0, 1, 5)
ou même

Code : Tout sélectionner

> b = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
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.
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message 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.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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...
Image
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message 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 !
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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...
Image
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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 ? :D :lol:
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message 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 ? :D :lol:
Je ne savais pas !
J'suis un jeune moi ... :roll: 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 !! :lol:

Lio :wink:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

@dobro

on pouvait retourner combien de valeurs avec GFA ?

2, 3, 4, sans limite réelle ?
Image
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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 .. :oops: )

en relisant le manuel du GFA !!

je vais aprofondir la chose pour confirmer :?

la il est 4 heure 44 , je vais essayer de dormir . !! :lol: [/b]
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message 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 !
Dernière modification par lionel_om le ven. 22/juin/2007 9:27, modifié 1 fois.
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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 :D

entre deux set, j'aurai meme pus surfer sur le net ou jouer a world of warcraft !! :lol:

ça c'est tres bien passé, petit soirée cool , pas trop de monde, bref, cool ! :D
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 !! :D
Répondre