Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Wed 02 April 2008 11:22

pyjoubert
Participant assidu
Lieu: Lyon
Date d'inscription: 21 Mar 2006
Messages: 330

Comparaison d'élements de liste

Bonjour,
Dans un traitement, j'ai un SPATIALRELATOR qui à comme paramètre "ma_liste" et nb_candidats.
Dans le cas où le nombre de  candidats est supérieur à 1, je voudrais comparer  certaines valeurs de chaque entité deux à deux.
exemple :
_ma_liste{0}.STRUCT avec _ma_liste{1}.STRUCT
_ma_liste{0}.MATER avec _ma_liste{1}.MATER
...
et faire ressortir les 2 entités dans un log si il y a au moins une différence

et ensuite faire de même en comparant l'es index suivants (1 et 2) puis 2 et 3

Je ne vois pas comment m'y prendre.
Avez-vous une idée ?

Merci de votre aide et bonne journée

Hors ligne

 

#2 Wed 02 April 2008 12:33

ogayte
Participant assidu
Lieu: Saint-Estève
Date d'inscription: 6 Mar 2006
Messages: 658
Site web

Re: Comparaison d'élements de liste

Ce problème me parait très complexe à traiter de manière générique avec un nombre de candidats non connu.
Le nombre de comparaison peut être très important  : C2/n. Avec 5 candidats cela fait 5*4/2 = 10.
A mon avis, il est plus simple de recherche le candidat qui satisfait le plus à un critère numérique et de trier les candidats par ce critère.


Olivier Gayte
http://www.veremes.com
+33 (0)4-68-38-65-27

Hors ligne

 

#3 Wed 02 April 2008 14:18

jaykayone
Participant actif
Date d'inscription: 15 Feb 2007
Messages: 95

Re: Comparaison d'élements de liste

Bonjour,

je pense que ce serait un cas typique pour utiliser un custom transformer avec une boucle.

C'est un peu compliqué à mettre en oeuvre, mais en gros vous pouvez faire le premier traitement, faire passer vos données dans un "Loop Output", les faire revenir, incrémenter l'index, faire votre comparaison et sortir de la boucle une fois que vous avez atteint la taille de la liste ...

http://www.fmepedia.com/index.php/Loop

Jeff

Hors ligne

 

#4 Wed 02 April 2008 15:08

pyjoubert
Participant assidu
Lieu: Lyon
Date d'inscription: 21 Mar 2006
Messages: 330

Re: Comparaison d'élements de liste

Bonjour,

Je me suis mal exprimé. Quand je dis deux à deux, c'est en fait 0 avec 1, 1 avec 2, 2 avec 3 ....
C'est à dire pour 5 candidats on aura 4 comparaisons d'entités

Hors ligne

 

#5 Thu 03 April 2008 11:35

pyjoubert
Participant assidu
Lieu: Lyon
Date d'inscription: 21 Mar 2006
Messages: 330

Re: Comparaison d'élements de liste

Bonjour,
Est ce que quelqu'un a un exemple tres simple utilisant le "loop"
Merci d'avance

Hors ligne

 

#6 Thu 03 April 2008 12:09

pyjoubert
Participant assidu
Lieu: Lyon
Date d'inscription: 21 Mar 2006
Messages: 330

Re: Comparaison d'élements de liste

En complement de mon message précédent, je cherche un exemple de "Loop", traduisant l'algo ci-dessous

Pour chaque indice compris entre 1 et i (que je connais)
faire
     - récuperer la valeur de ma_liste{i}.STRUCT
     - récupérer la valeur de ma_liste{(i - 1)}.STRUCT
     - les comparer
fin

merci de aide

Hors ligne

 

#7 Thu 03 April 2008 13:24

ogayte
Participant assidu
Lieu: Saint-Estève
Date d'inscription: 6 Mar 2006
Messages: 658
Site web

Re: Comparaison d'élements de liste

Je n'ai pas d'exemple à vous fournir mais plutôt une suggestion :
Pourquoi ne pas utiliser TclCaller pour développer votre algo en TCL ?
Ce serait beaucoup plus que d'utiliser des Transformers recursifs.


Olivier Gayte
http://www.veremes.com
+33 (0)4-68-38-65-27

Hors ligne

 

#8 Thu 03 April 2008 13:38

jaykayone
Participant actif
Date d'inscription: 15 Feb 2007
Messages: 95

Re: Comparaison d'élements de liste

Bonjour,

en annexe, j'ai mis un exemple qui fait partie du concours "FME Idol" de la conférence d'utilisateurs à Vancouver.

Il s'agissait de parcourir une chaîne de caractère et de remplacer chaque caractère par une valeur définition dans un dictionnaire.

Je l'ai résolu avec un looping transformer...

Il n'y a pas de commentaires, mais ça peut certainement vous être utile pour comprendre comment on peut s'y prendre.

Bonne chance,
Jeff Konnen


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#9 Fri 04 April 2008 07:41

pyjoubert
Participant assidu
Lieu: Lyon
Date d'inscription: 21 Mar 2006
Messages: 330

Re: Comparaison d'élements de liste

Olivier et jaykayone, merci de vos 2 solutions

Hors ligne

 

Pied de page des forums

Powered by FluxBB