PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Remplacer la clé d’un tableau associatif
Remplacer la clé d’un tableau associatif
Iniciado por clement, 26,nov. 2018 19:14 - 4 respuestas
Publicado el 26,noviembre 2018 - 19:14
Bonjour,

J’utilise un tableau associatif de structures pour lequel j’ai besoin de renommer une clé d’un élément.

Exemple : MonTableau[MaClé] = MaStructure

Ici je veux que MaClé qui vaut Windev23 soit renommée en Windev24.

Comment puis-je faire si ce n’est supprimé l’élément Windev23 et créer un nouveau Windev24 ?

Une fonction qui serait du genre MonTableau[Windev23]..Clé = Windev24 (qui ne marche pas).

Je vous remercie pour vos prochaines propositions.

Cordialement.
Publicado el 27,noviembre 2018 - 07:21
Bonjour,

Ici je veux que MaClé qui vaut Windev23 soit renommée en Windev24.
Je vous remercie pour vos prochaines propositions.


https://www.pcsoft.fr/pcsoft/BCMAJWX24.pdf ?

Je sais qu'elle va pas beaucoup t'aider ma réponse.... Mais c'était trop tentant!

:D
Miembro registrado
96 mensajes
Publicado el 27,noviembre 2018 - 08:59
Bonjour Clément,

Je ne vois pas d'autre solution que celle que tu donnes toi-même.
En effet, dans les autres langages où l'on peut voir le code source, la clé est d'un tableau associatif (dictionnaire) est une valeur "immutable". Cela signifie qu'elle ne peut pas changer.

Pourquoi ? Tout simplement parce qu'en général, on calcule le hash de l'objet pour rechercher plus rapidement. On ne recherche pas sur Windev23 en premier lieu, mais sur une valeur hashée de Windev23. S'il y a ensuite des doublons (sur un hash, c'est rare), alors on vérifie ce qu'il reste.

Si tu veux faire ce genre d'opération, je te conseille de travailler avec un tableau de structure et la fonction cherche.

Mais l'idéal (et c'est une question que je pose assez régulièrement), ce serait de savoir ce que tu souhaites faire réellement. Quel est l'intérêt de modifier la clé d'un tableau associatif ? En fonction de ton besoin, nous pourrons peut-être te donner d'autres alternatives.

Bonne journée à toi.

--
Johjo aka Jonathan Laurent

Codez mieux ! Codez plus vite !

Mon blog sur WinDev : http://www.ytreza.org
Me contacter sur slack (wx-community) : https://frama.link/BoBD0SY0
Faîtes moi un ping : http://www.ytreza.org/fr/services/ping-sur-forum
Publicado el 27,noviembre 2018 - 09:35
Bonjour

Renommer, ca peut très bien se faire aussi en copiant ton élément courant dans un nouvel élément et en supprimant l'ancien, en mémoire c'est pas de temps que ca va prendre qui va changer grand chose

Bon dev

Marc Fastré
www.marc-fastre.be
Publicado el 30,noviembre 2018 - 08:28
Bonjour à tous,

Je vous remercie pour vos conseils.

J'ai effectivement mis en place une copie de l'élément + suppression de l'ancien. Le résultat est au rendez-vous.

Pour préciser mon cas comme sollicité, ma clé est constituée d'une information importante pour éviter d'avoir des doublons sous forme d'une chaine avec un booléen qui peut être amené à changer selon les manipulations de l'utilisateur (ex. : VILLE;0).

A bientôt !