29/10/2008
Rot13 en AppleScript
La page de Jay Kominek sur le sujet n'étant pas mise à jour depuis 2004, je commence ma collection d'implémentations du Rot13 par la contribution que je lui avais envoyé, en pur AppleScript. Pour ceux qui ne savent pas ce qu'est le Rot13, c'est simplement le Chiffre de César, avec un décalage de 13 lettres pour être soi-même sa propre fonction inverse. Elegant et omniprésent.
En AppleScript donc (avec très longues lignes):
(* Rot13 in pure AppleScript
* 2006-08-10 - waw, pas d'hier!
* Jean Karim Bockstael
*)
on rot13(inputString)
set lowercaseChars to "abcdefghijklmnopqrstuvwxyz"
set uppercaseChars to "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
set tempOutput to ""
considering case
repeat with theChar in inputString
if ((offset of theChar in uppercaseChars) is not 0) then
try
set tempOutput to tempOutput & (character ((((offset of theChar in uppercaseChars) + 13) mod 26) + 0) in uppercaseChars)
on error
set tempOutput to tempOutput & "Z"
end try
else if ((offset of theChar in lowercaseChars) is not 0) then
try
set tempOutput to tempOutput & (character ((((offset of theChar in lowercaseChars) + 13) mod 26) + 0) in lowercaseChars)
on error
set tempOutput to tempOutput & "z"
end try
else
set tempOutput to tempOutput & theChar
end if
end repeat
end considering
end rot13