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

Tags:

cc-by-nc | code (applescript) | rot13


Rot13 en Bash (30/10/2008)Pour faciliter le retagging... (28/10/2008)