06/09/07
Comparer deux listes (AppleScript)

Une petite fonction dont j'ai crû avoir besoin, elle est destinée à comparer deux listes[1].
Le but de la manipulation étant de trouver une correspondance entre deux listes, et de retourner un item correspondant entre les deux listes comparées… additionnellement, l'utilisation de la fonction permettra de choisir si l'on veut considérer la première ou la dernière correspondance.
La fonction est sensible à la casse.
on list_compare(a, b, break) if (count b) < (count a) then set {c, d} to {a, b} set {a, b} to {d, c} end if set {r, i, output} to {count b, 1, false} repeat r times set {match, i} to {item i of b, i + 1} considering case if a contains match then set output to match if break then exit repeat end if end considering end repeat return output end list_compare
si aucune correspondance est trouvée la fonction retourne false.
exemple 1 :
set a to {"pomme", "poire", "banane"} set b to {"kiwi", "figue", "cerise", "abricot", "citron", "pamplemousse", "litchi"} list_compare(b, a, false)
aucune correspondance : false
exemple 2 :
set a to {"pomme", "poire", "banane"} set b to {"kiwi", "figue", "cerise", "poire", "abricot", "citron", "pamplemousse", "litchi", "banane"} list_compare(b, a, false)
dernière correspondance : "banane"
exemple 3 :
set a to {"pomme", "poire", "banane"} set b to {"kiwi", "figue", "cerise", "poire", "abricot", "citron", "pamplemousse", "litchi", "banane"} list_compare(b, a, true)
première correspondance : "poire"