Besoin de l'avis d'un expert
Publié : sam. 30/avr./2005 16:48
Je finalise un petit programme qui génère du code PureBasic automatique.
Il sert à créer toute les méthodes pour manipuler une structure simple de données.
Bref, c'est pour faire soit de la Programmation Basé Objet (PBO), soit de la Programmation Orienté Objet (POO).
La seule différence entre la PBO et la POO c'est qu'il n'y a pas de classe pour l'objet dans la PBO. Mais le fonctionnment est le même. C'est à la fois un avantage et un inconvéniant. En POO l'objet est protègé alors qu'en PBO il faut faire gaffe, on peut écrire des données par erreur dans l'objet. En revanche, on peut facilement ajouter des méthodes pour manipuler l'objet sans se casser la tête à les inclures dans l'interface.
Les entrées du programme :
Le nom de la Structure :
Info
Les champs :
Nom.s
Prenom.s
Age.b
Le nom des pointeurs :
*Alpha
*Beta
Le nom du paramètre :
Variable
Le nom de l'interface :
Methode
Le nom de la structure de l'interface :
StructMethode
Et voiçi le code généré :
Je remercie tout ceux qui prendront le temps de faire une analyse du code.
A+
Guimauve
Il sert à créer toute les méthodes pour manipuler une structure simple de données.
Bref, c'est pour faire soit de la Programmation Basé Objet (PBO), soit de la Programmation Orienté Objet (POO).
La seule différence entre la PBO et la POO c'est qu'il n'y a pas de classe pour l'objet dans la PBO. Mais le fonctionnment est le même. C'est à la fois un avantage et un inconvéniant. En POO l'objet est protègé alors qu'en PBO il faut faire gaffe, on peut écrire des données par erreur dans l'objet. En revanche, on peut facilement ajouter des méthodes pour manipuler l'objet sans se casser la tête à les inclures dans l'interface.
Les entrées du programme :
Le nom de la Structure :
Info
Les champs :
Nom.s
Prenom.s
Age.b
Le nom des pointeurs :
*Alpha
*Beta
Le nom du paramètre :
Variable
Le nom de l'interface :
Methode
Le nom de la structure de l'interface :
StructMethode
Et voiçi le code généré :
Code : Tout sélectionner
Structure Info
*Next.Info
*Previous.Info
Nom.s
Prenom.s
Age.b
EndStructure
Procedure.s GetInfoNom(*Alpha.Info)
ProcedureReturn *Alpha\Nom
EndProcedure
Procedure.s GetInfoPrenom(*Alpha.Info)
ProcedureReturn *Alpha\Prenom
EndProcedure
Procedure.b GetInfoAge(*Alpha.Info)
ProcedureReturn *Alpha\Age
EndProcedure
Procedure SetInfoNom(*Alpha.Info, Variable.s)
*Alpha\Nom = Variable
ProcedureReturn *Alpha
EndProcedure
Procedure SetInfoPrenom(*Alpha.Info, Variable.s)
*Alpha\Prenom = Variable
ProcedureReturn *Alpha
EndProcedure
Procedure SetInfoAge(*Alpha.Info, Variable.b)
*Alpha\Age = Variable
ProcedureReturn *Alpha
EndProcedure
Procedure UpdateInfo(*Alpha.Info, Nom.s, Prenom.s, Age.b)
*Alpha\Nom = Nom
*Alpha\Prenom = Prenom
*Alpha\Age = Age
ProcedureReturn *Alpha
EndProcedure
Procedure TransferInfo(*Alpha.Info, *Beta.Info)
*Alpha = *Beta
FreeMemory(*Beta)
ProcedureReturn *Alpha
EndProcedure
Procedure InitInfo()
*Alpha.Info = AllocateMemory(SizeOf(Info))
ProcedureReturn *Alpha
EndProcedure
Procedure CreateInfo(Nom.s, Prenom.s, Age.b)
*Alpha.Info = AllocateMemory(SizeOf(Info))
*Alpha\Nom = Nom
*Alpha\Prenom = Prenom
*Alpha\Age = Age
ProcedureReturn *Alpha
EndProcedure
Interface MethodeInfo
GetInfoNom(*Alpha.Info)
GetInfoPrenom(*Alpha.Info)
GetInfoAge(*Alpha.Info)
SetInfoNom(*Alpha.Info, Variable.s)
SetInfoPrenom(*Alpha.Info, Variable.s)
SetInfoAge(*Alpha.Info, Variable.b)
UpdateInfo(*Alpha.Info, Nom.s, Prenom.s, Age.b)
TransferInfo(*Alpha.Info, *Beta.Info)
InitInfo()
CreateInfo(Nom.s, Prenom.s, Age.b)
EndInterface
Structure StructMethode
GetInfoNom.l
GetInfoPrenom.l
GetInfoAge.l
SetInfoNom.l
SetInfoPrenom.l
SetInfoAge.l
UpdateInfo.l
TransferInfo.l
InitInfo.l
CreateInfo.l
EndStructure
A+
Guimauve