[WD16] Indirection sur un tableau de structure
Le
Emmanuel Haefelé

Bonjour,
J'ai un tableau de structures sur lequel je fais une recherche sans
utiliser les indirections et qui fonctionne :
nPos = TableauCherche ( MonTableau, tcDichotomique,
"nLigne", nLigne )
SI nPos <> -1 ALORS
Trace ( MonTableau [ nPos ] : MonMembre )
FIN
Le problème est que je dois utiliser les indirections sur la variable
MonMembre mais là je bloque.
Si je parcours le tableau de la façon suivante, j'arrive à récupérer
l'information en utilisant l'indirection.
MaChaine = "MonMembre"
POUR TOUT ELEMENT MaStructure DE MonTableau
Trace ( { "MaStructure:" + Machaine } )
FIN
Par contre en utilisant un TableauCherche, je cale ! J'ai essayé pas mal
de combinaisons mais sans succès. Je pense que je pourrais m'en sortir
avec la compilation dynamique mais je ne souhaiterais l'utiliser qu'en
dernier recours.
Avez-vous une idée ?
Si quelqu'un pouvait me mettre sur une piste ou me confirmer que ce n'est
pas possible, ça m'aiderait bien
Par avance merci
Cordialement,
Emmanuel Haefelé.
J'ai un tableau de structures sur lequel je fais une recherche sans
utiliser les indirections et qui fonctionne :
nPos = TableauCherche ( MonTableau, tcDichotomique,
"nLigne", nLigne )
SI nPos <> -1 ALORS
Trace ( MonTableau [ nPos ] : MonMembre )
FIN
Le problème est que je dois utiliser les indirections sur la variable
MonMembre mais là je bloque.
Si je parcours le tableau de la façon suivante, j'arrive à récupérer
l'information en utilisant l'indirection.
MaChaine = "MonMembre"
POUR TOUT ELEMENT MaStructure DE MonTableau
Trace ( { "MaStructure:" + Machaine } )
FIN
Par contre en utilisant un TableauCherche, je cale ! J'ai essayé pas mal
de combinaisons mais sans succès. Je pense que je pourrais m'en sortir
avec la compilation dynamique mais je ne souhaiterais l'utiliser qu'en
dernier recours.
Avez-vous une idée ?
Si quelqu'un pouvait me mettre sur une piste ou me confirmer que ce n'est
pas possible, ça m'aiderait bien
Par avance merci
Cordialement,
Emmanuel Haefelé.
Zut, je pensais avoir ça dans une de nos applications où il y a beau coup
de dynamique, nous
utilisons bien des structures pour donner la définition des données
dynamiques, mais les données
elles-mêmes sont des champs clonés classiques et donc je ne sais pas si
c'est possible ou non.
Le ST devrait pouvoir répondre à une question qui est très claire, non ?
--
TT
Bonjour,
C'est vrai mais ce que j'aime avec les forums, c'est que les réponses sont
rapides ;)
Sur un autre forum on m'a proposé une solution intéressante. La
solution est la suivante :
Créer une procédure :
PROCEDURE TraiterMembre ( MaStructure, MaChaine )
Trace("---> " + {"MaStructure:" +MaChaine })
RETOUR
Puis faire la chose suivante :
nPos = TableauCherche ( MonTableau, tcDichotomique, "nLigne", nLigne )
SI nPos <> -1 ALORS
TraiterMembre ( MonTableau [ nPos ], MaChaine )
FIN
Cordialement,
Emmanuel Haefelé
Et voici une solution encore plus simple :
nPos = TableauCherche ( MonTableau, tcDichotomique, "nLigne", nLigne )
SI nPos <> -1 ALORS
Trace ( {"MonTableau[" + nPos + "]." + MaChaine})
FIN
Cordialement,
Emmanuel Haefelé.
Si j'ai bien compris que montableau est une structure, ne faudrait-il pa s
':' au lieu de '.' ?
--
TT
En fait (depuis la 16) les deux syntaxes sont acceptées. Autre information
(toujours en 16 à priori), je n'ai pas réussi à utiliser cette indirection
avec l'ajout du paramètre IndVariable car j'avais un retour d'erreur
m'indiquant que l'élément était inconnu. Bizarre, bizarre mais c'est
garanti ....
Cordialement,
Emmanuel Haefelé.