Message de rapport:
 

Re: DEFI N°1 - Indirection sur un tableau de structure

Sujet: Re: DEFI N°1 - Indirection sur un tableau de structure
par drcharly93 sur 11/2/2005 12:45:37

Bonjour,

Tu pousse le bouchon un peu trop loin maurice

je veux bien comprendre l'utilisation de l'indirection sur le nom du tableau qui peut varier en fonction des besoins.
Maintenant de la a vouloir mettre l'indirection sur les membres d'une structure qui elle ne change pas, je ne vois pas bien l'utilité si ce n'est à chercher à pousser les limites à l'extrême.
Ou alors dites moi avec quel languages vous arrivé à faire cela?

Ceci dit il y a toujours moyen de trouver une solution via la compilation dynamique.
A des fins didactique, je vous offre le code:

Element1,NomTable est une chaîne
Element1="IdCateg"
NomTable="TabCateg"

sResultat est une chaîne 
sResultatCompile est une chaîne 
sSource est une chaîne
sSource  = "//Une Structure" + RC
sSource += "Categ est une structure" + RC
sSource += " IdCateg est un entier" + RC
sSource += " LibCateg est une chaîne" + RC
sSource += "FIN" + RC + RC
sSource += "//Un Tableau Dynamique" + RC
sSource += "TabCateg est un tableau dynamique" + RC
sSource += "TabCateg=allouer un tableau de 0 Categ"+RC + RC
sSource += "Element1,NomTable est une chaîne" + RC
sSource += "Element1=""IdCateg""" + RC
sSource += "NomTable=""TabCateg""" + RC + RC
sSource += "//Je redimensionne mon tableau." + RC
sSource += "Dimension({NomTable},1) //Ca fonctionne" + RC + RC
sSource += "//j'affecte une valeur de test" + RC
sSource += "TabCateg[1]:IdCateg=10" + RC
sSource += "//on regarde le resultat" + RC
sSource += "Info(""Nouvelle Valeur affectée à TabCateg[1]:IdCateg : "" +TabCateg[1]:IdCateg)" + RC + RC
sSource +=  NomTable + "[1]:" + Element1 + "=2" + RC
sSource += "RENVOYER (TabCateg[1]:IdCateg)"

sResultatCompile = Compile ("Proc_dynamique", sSource)
SELON sResultatCompile
	CAS "" : sResultat = ExécuteTraitement("Proc_dynamique", trtProcédure )
	CAS "ERR" : sResultat = "Compilation impossible. "+ RC +ErreurInfo()
	AUTRE CAS : sResultat = sResultatCompile
FIN
Info("TabCateg[1]:IdCateg = " + sResultat)

Vous pouvez tester cela fonctionne.
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2