Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD16] Indirection sur un tableau de structure

5 réponses
Avatar
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é.

5 réponses

Avatar
tt
Le Tue, 25 Oct 2011 13:51:44 +0200, Emmanuel Haefelé
a écrit:

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 variabl e
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 sort ir
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
Avatar
Emmanuel Haefelé
"tt" a écrit :

Bonjour,

Le ST devrait pouvoir répondre à une question qui est très claire, non ?



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é
Avatar
Emmanuel Haefelé
"Emmanuel Haefelé" a écrit

Sur un autre forum on m'a proposé une solution intéressante.



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é.
Avatar
tt
Le Wed, 26 Oct 2011 11:39:46 +0200, Emmanuel Haefelé
a écrit:

"Emmanuel Haefelé" a écrit

Sur un autre forum on m'a proposé une solution intéressante.



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
Avatar
Emmanuel Haefelé
"tt" a écrit

Si j'ai bien compris que montableau est une structure, ne faudrait-il
pas ':' au lieu de '.' ?



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é.