Forum darktable FR
Utilisation des conditions de recherche (Résolu) - Version imprimable

+- Forum darktable FR (https://forums.darktable.fr)
+-- Forum : Utilisation de darktable (https://forums.darktable.fr/forumdisplay.php?fid=97)
+--- Forum : Module Table Lumineuse (https://forums.darktable.fr/forumdisplay.php?fid=74)
+--- Sujet : Utilisation des conditions de recherche (Résolu) (/showthread.php?tid=6498)

Pages : 1 2


Utilisation des conditions de recherche (Résolu) - ctouze - 31-05-23

Bonjour,
J’ai des difficultés pour utiliser les conditions de recherche dans les collections,j’ai mis des mots clés pour designer 4 personnes et voudrais sélectionner dans un dossier les photos ou elles apparaissent soit seules soit par groupe de 2 3 ou 4.je bataille avec les conditions « et » « ou » « inclure » « exclure » mais je n’arrive pas au résultat voulu.est ce que c’est possible ?


RE: Utilisation des conditions de recherche - jpverrue - 31-05-23

Si j'ai bien compris : tu as des photos des personnes A, B, C et D que tu as indexées avec les mots clés A, B, C et D. Et tu voudrais retrouver toutes les photos ou au moins une de ces personnes apparaît. C'est bien ça ?
Dans ce cas, tu dois mettre un "ou" entre chaque condition.
Exemple en langue parlée : sélectionner si mot-clé "A" ou si mot-clé "B" ou si mot-clé "C" ou si mot-clé "D"


RE: Utilisation des conditions de recherche - ctouze - 31-05-23

C'est bien ça sauf que je souhaite faire la sélection dans un dossier précis.
Donc je fais sélectionner si dossier "1" et si mot-clé "A" ou si mot-clé "B" ou si mot-clé "C" ou si mot-clé "D" .
en résultat j'ai bien toutes les photos ou au moins une de ces personnes apparaît mais dans tout le dossier racine de mes photos pas seulement dans le dossier spécifié.
C'est la ou je bloque


RE: Utilisation des conditions de recherche - ctouze - 01-06-23

J'y suis arrivé mais il faut 8 conditions :
si dossier "1"
et si mot-clé "A"
ou  si dossier "1"
et si mot-clé "B"
ou  si dossier "1"
et si mot-clé "C"
ou  si dossier "1"
et si mot-clé "D"
Je pensais qu'il était possible de faire plus simple.


RE: Utilisation des conditions de recherche - jpverrue - 01-06-23

Ce serait possible si on pouvait utiliser quelque chose comme des parenthèses pour prioriser les conditions. Un peu comme ça :
      Si dossier X et (personne A ou personne B ou Personne C ou personne D).
Malheureusement ça n'existe pas, ni dans le module collections, ni dans le module filtres de collections


RE: Utilisation des conditions de recherche - FrançoisH - 01-06-23

Bonjour,

un "in case ... of" serait bien utile, si ça existe en C.



RE: Utilisation des conditions de recherche (Résolu) - jpverrue - 01-06-23

Oui, bien sûr, il existe en C une structure de ce type :

Code :
switch (expression) {
case expression-constante : instructions
case expression-constante : instructions
...
default : instructions
}

Mais ce n'est pas si simple ! Actuellement, la résolution de la série de conditions est purement linéaire. Il n'y aucune gestion de priorité entre elles. Premier lu, premier traité ! Donc un simple switch convient. C'est d'ailleurs ce qui est codé aujourd'hui.

S'il fallait ajouter des parenthèses (appelons la chose comme ça par facilité), cela veut dire qu'il faudrait gérer des priorités : les parenthèses étant plus prioritaires que les "et", les "ou" et les "non". Il faudrait aussi tenir compte des parenthèses imbriquées. Cela signifie qu'il faudrait complètement réécrire cette partie du code pour, au choix :
  • Coder à la main la récursivité du bidule.
  • Où faire appel à des résolveurs externes, le couple YAcc et Lex, par exemple (Ce sont ceux que je connais, mais il en existe certainement d'autres).

J'ai travaillé dans le code de ce module il y a quelques années pour y ajouter les conditions sur les horodatages. Je peux te dire qu'il est 'un peu' chargé ! et ce n'a pas dû s'arranger depuis que le module "filtre de collections" a été ajouté. C'est d'ailleurs ce qui a fait vriller Aurélien l'année dernière.

J'aimerais bien faire ça, car j'ai déjà codé plusieurs analyseurs syntaxiques, mais ça me fait vraiment peur !


RE: Utilisation des conditions de recherche (Résolu) - Phil7857 - 01-06-23

Bonjour,
Instinctivement j’aurai mis les « ou » en premier et fini par le « et ».
Personne A ou Personne B ou Personne C et Dossier I
Mais sans aucune assurance que ça fonctionne.


RE: Utilisation des conditions de recherche (Résolu) - FrançoisH - 01-06-23

(01-06-23, 17:58)Phil7857 a écrit : Bonjour,
Instinctivement j’aurai mis les « ou » en premier et fini par le « et ».
Personne A ou Personne B ou Personne C et Dossier I
Mais sans aucune assurance que ça fonctionne.
Bonsoir,

ainsi que jpverrue l'annonce, avant d'effectuer un traitement informatique (je rajoute, 
de cosmétique ... à indispensable) il faut analyser ce qui est demandé, pour le faire le mieux possible, comme dans la vie. Je ne connais pas le C et surtout je n'ai plus le gnyak pour le suivi, mais j'avoue que ce genre de problème m'aurait tenté, il y a ... quelques temps  Confused Place aux jeunes.


RE: Utilisation des conditions de recherche (Résolu) - Phil7857 - 01-06-23

(01-06-23, 18:36)FrançoisH a écrit :
(01-06-23, 17:58)Phil7857 a écrit : Bonjour,
Instinctivement j’aurai mis les « ou » en premier et fini par le « et ».
Personne A ou Personne B ou Personne C et Dossier I
Mais sans aucune assurance que ça fonctionne.
Bonsoir,

ainsi que jpverrue l'annonce, avant d'effectuer un traitement informatique (je rajoute, 
de cosmétique ... à indispensable) il faut analyser ce qui est demandé, pour le faire le mieux possible, comme dans la vie. Je ne connais pas le C et surtout je n'ai plus le gnyak pour le suivi, mais j'avoue que ce genre de problème m'aurait tenté, il y a ... quelques temps  Confused Place aux jeunes.

 Huh Huh Huh Huh Huh Huh

Je vais suivre ton conseil, avant de répondre je vais essayer de bien analyser pourquoi tu me cites ... ben je ne comprends pas. Peux-tu s'il te plait éclairer ma lanterne ? Pourquoi tu me parles de C alors que je n'en fais pas mention ?
Désolé, je dois être trop vieux pour comprendre.