PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Comment passer un tableau associatif avec doublon en paramètre ?
Comment passer un tableau associatif avec doublon en paramètre ?
Débuté par Denis, 25 avr. 2018 10:51 - 7 réponses
Membre enregistré
97 messages
Popularité : +3 (3 votes)
Posté le 25 avril 2018 - 10:51
Bonjour ,
J'ai vu que cette question avait été posée en 2009 .
Est-il possible de la faire avec la version 23 ?
Quand on essaye de typer un paramètre d'une fonction avec un tableau associatif avec doublon , bien sur le compilateur râle car il y a le " (AvecDoublon) " qui comporte des parenthèses .
Existe-t-il une autre syntaxe pour le faire ?

Cordialement
Membre enregistré
281 messages
Popularité : +24 (26 votes)
Posté le 25 avril 2018 - 11:17
Bonjour,

Avez-vous essayé PROCEDURE MaProcedure(MonTableau est un tableau dynamique) ?
Membre enregistré
97 messages
Popularité : +3 (3 votes)
Posté le 25 avril 2018 - 12:01
Merci Damien pour votre réponse .
En fait le compilateur accepte la déclaration PROCEDURE MaProcedure(MonTableau est un tableau dynamique) .
Par contre lors de l'appel a cette procédure :
MaProcedure(TA) ou TA est un tableau associatif (AvecDoublon) de tableaux associatifs de chaînes
le compilateur râle avec le message :
TA : Erreur :Le paramètre 1 de type 'tableau associatif' ne peut pas être converti en type 'tableau'.

J'ai une solution pas terrible si je fais :
PROCEDURE MaProcedure(MonTableau ) >> sans rien typer
Le tableau associatif est bien passé en paramètre
Seulement dans la procédure appelante je ne peux utiliser la syntaxe :
pour tout element unTA ,CleMonTableau ,ipos de MonTableau
.....
fin

Pour le moment je fais avec une boucle de type
pour tout unTA de MonTableau

fin
Membre enregistré
256 messages
Popularité : +29 (29 votes)
Posté le 25 avril 2018 - 12:18
Bonjour

Il ne faut pas mettre le "(avecDoublon)", uniquement le reste de la déclaration
Procedure Proc(t est un tableau associatif de booléens)


Pour comprendre le truc, il faut voir les informations entre ( ) du tableau associatif comme des "paramètres du constructeur" du tableau et non pas comme des informations du type ; elles sont donc inutiles dans le type d'un paramètre formel.
Membre enregistré
97 messages
Popularité : +3 (3 votes)
Posté le 25 avril 2018 - 12:29
Oui Yann , mais le problème si on déclare de la sorte on n'a pas le droit d'avoir des doublons non ?
Bon je vais tester cela de toute façon .
Membre enregistré
97 messages
Popularité : +3 (3 votes)
Posté le 25 avril 2018 - 13:01
Yann , je viens de tester .
Cela fonctionne en effet .

Il semble donc que la déclaration AvecDoublon ne serve qu'à Windev pour construire sa structure .
Je n'ai déjà toujours pas compris pourquoi avoir cette double notion de AVEC ou SANS doublon .
Le fait d'avoir des doublons ( ou pas ) devrait être testable par une propriété dans tous les cas .

merci Yann pour la solution
Posté le 29 juillet 2019 - 11:20
voici la synthaxe obtenu avec l'assitant :

Va_Tab_RFIC est un tableau associatif (AvecDoublon, *, *, 30000) de STR_RFIC
Posté le 29 juillet 2019 - 17:47
Merci beaucoup Sébastien pour votre réponse .
Je testerai bientôt cette syntaxe .
Bonne journée.
Cordialement
Denis