06/09/07

Comparer deux listes (AppleScript)

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"

RSS commentaires

  1. T
  2. N
  3. Z
  4. I
  5. G
  6. 6

Pour valider le formulaire, saisissez les 3 derniers caractères de la série

  • caca
  • confused
  • cry
  • dizzy
  • happy
  • lol
  • neutral
  • omg
  • sad
  • smile
  • tongue
  • wink