#1 Fri 22 February 2008 14:12
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
expression evaluator et test
Bonjour,
Voici ce que je souhaite faire à l'aide de cet outil : remplacer la valeur de _calque si et seulement si _substring ="E_COTATI"
J'ai mis ce code dans la boîte de dialogue
@Value(_calque) = (@Value(_substring) == E_COTATI) ? E_COTATI : @Value(_calque)
Mais çà ne fonctionne pas :
' -- syntax error in expression "E_COUDPR_BP = (E_COUDPR == E_COTATI) ? E_COTATI : E_COUDPR_B...": variable references require preceding $
Et je ne suis pas sûr de savoir ce qui ne va pas (pour ne pas dire incapable de le deviner)
Any help ?
Merci d'avance,
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#2 Fri 22 February 2008 14:31
- LASGOUZES
- Participant assidu
- Date d'inscription: 6 Mar 2006
- Messages: 169
Re: expression evaluator et test
Pourquoi ne pas le faire avec 2 transformer 1 Tester qui sort sur le port Passed la condition vrai et Failed la condition faux suivi du transformer AttributSetter ou AttributCreator ou autres sur le port Passed.
Cordialement,
Hors ligne
#3 Fri 22 February 2008 14:34
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: expression evaluator et test
parce que.
Non plus sérieusement, j'ai déjà un beau fouilli sur mon établi, il est écrit dans l'aide qu'on peut le faire, alors, je teste, mais je ne vois pas ce qui cloche dans mon approche.
Remplacer 3 tester par un, c'est pas négligeable, non ? En plus on gagne en efficaité j'en suis sûr.
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#4 Fri 22 February 2008 15:27
- Matthieu-VEREMES
- Participant actif
- Lieu: Montpellier
- Date d'inscription: 9 Jan 2008
- Messages: 97
- Site web
Re: expression evaluator et test
Bonjour,
J'ai bien peur que "x?y:z" ne fonctionne qu'avec des valeurs numériques...
Ce qui est d'ailleurs précisé dans l'aide : "L'opérande x doit avoir une valeur numérique" mais il est vrai que ce n'est pas explicitement précisé sur FMEPedia.
Cordialement.
Dernière modification par Matthieu-VEREMES (Fri 22 February 2008 15:29)
Matthieu Ambrosy
Veremes : support FME & version française
support at veremes point com
Hors ligne
#5 Fri 22 February 2008 15:45
- Sylvie
- Membre
- Date d'inscription: 5 Sep 2005
- Messages: 3066
Re: expression evaluator et test
Bonjour,
Et au cas où tu repasses par là avec des valeurs numériques, il faut aussi mettre toute l'expression entre parenthèses
Bon WE
Hors ligne
#6 Tue 25 March 2008 09:39
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: expression evaluator et test
Aloha
La dernière fois, vous m'avez fait remarquer que l'utilisation de l'evaluator comme test était conditionnée par l'utilisation d'attributs numériques.
Je cherche à trier mes courbes de niveaux en principales, secondaires... les principales étant celles des dizaines.
Je pense qu'une expression de ce type devrait me permettre de marquer les courbes principales à l'aide du 0 et les autres du -1.
Code:
_result = ((fmod(@Value(autocad_elevation),10)) > 0) ? "-1" : " 0"
Cependant j'obtiens le résultat suivant : ' -- syntax error in expression "_result = ((fmod(73,10)) > 0) ? -1 : 0": character not legal in expressions
Une idée ?
D'avance merci.
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#7 Tue 25 March 2008 10:24
- Sylvie
- Membre
- Date d'inscription: 5 Sep 2005
- Messages: 3066
Re: expression evaluator et test
Bonjour,
La même idée que la dernière fois : mettre toute l'expression entre parenthèses
Sylvie, têtue
Hors ligne
#8 Tue 25 March 2008 10:37
- Matthieu-VEREMES
- Participant actif
- Lieu: Montpellier
- Date d'inscription: 9 Jan 2008
- Messages: 97
- Site web
Re: expression evaluator et test
Bonjour, effectivement, ne pas mettre de parenthèse après le > 0 mais la mettre à la fin.
Ni d'espace avant 0"
Je viens d'essayer l'expression suivante qui fonctionne bien chez moi :
(fmod(@Value(toto),10) > 0 ? "-1" : "0")
Notez que si "toto" contient des virgules, ça ne fonctionne pas.
Il faut que le séparateur soit un point.
Matthieu Ambrosy
Veremes : support FME & version française
support at veremes point com
Hors ligne
#9 Tue 25 March 2008 11:13
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: expression evaluator et test
non à tous les deux
(fmod(@Value(autocad_elevation),10) == 0) ? 1 : (fmod(@Value(autocad_elevation),5) == 0) ? 2 : -1
pas besoin de parenthèses, juste enlever le _result =. Et pas besoin de "" non plus d'ailleurs.
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#10 Tue 25 March 2008 12:12
- Sylvie
- Membre
- Date d'inscription: 5 Sep 2005
- Messages: 3066
Re: expression evaluator et test
Bouh ! l'énoncé du problème a changé :
principales tous les 10 m = 1, secondaires tous les 5 mètres = 2, les autres = -1
Hors ligne
#11 Tue 25 March 2008 16:28
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: expression evaluator et test
En même temps, mettre 0 aux principales, j'allais les vexer.
Il y a quand même un sacré différentiel entre ce qu'il convient d'écrire dans l'établi et ce qu'ils nous indiquent dans l'aide.
Au fait l'un de vous était-il au journées utilisateurs ?
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#13 Tue 25 March 2008 18:52
Re: expression evaluator et test
Pour répondre à Pierre (mais on s'eloigne du sujet de base), j'étais à la conférence à Vancouver.
Nous sommes en train d'organiser une conférence française à Lyon (pour faire plaisir à Sylvie !) pour le mois de novembre . Au menu : de la vrai 3D, FME Server et les services web...
Hors ligne