Fonctions
La programmation AppleScript en exemples.

Fonction d'ajout des séparateur de millier.
Imaginons qu'on veuille afficher des prix de manière très élégante avec des séparateurs de millier. Or il s'avère que le séparateur de millier n'existe pas dans la notation "informatique" mais uniquement dans lla notation "littéraire". Pour afficher un nombre avec des séparateurs de millier, on va donc afficher une chaîne de caractères et non pas un nombre. Ainsi, pour afficher "1.234,15" à partir de "1234,15", on va devoir convertir un nombre en chaîne de caractère puis ajouter les séparateurs de millier aux bonnes places.

Fonction 6 : récupérez l'AppleScript ici.

Le Script :


on seperateur_mille(nombre, separateur_de_mille)
set
partie_entiere to text 1 thru ((length of nombre) - 3) of nombre
set
partie_decimale to text ((length of nombre) - 2) thru -1 of nombre
set nombre to
partie_entiere
set
resultat to last character of nombre
set
nbr_caractere to length of nombre
repeat with
i from 2 to nbr_caractere
if
((i mod 3) = 1) then
set
resultat to separateur_de_mille & resultat
end if
set
resultat to (character (nbr_caractere - i + 1) of nombre) & resultat
end repeat
return
(resultat & partie_decimale)
end
seperateur_mille


return seperateur_mille
("12345678.82", ",")


Explications :
La fonction accepte uniquement des nombres avec 2 chiffres après la virgule (fournis par la fonction précédente par exemple). Tout d'abord, elle mémorise la partie entière et la partie décimale. Pour constituer la chaîne de caractères finale, la fonction "relit" le nombre de la droite vers la gauche (unités, dizaine, centaine, millier,etc…) et ajoute un caractère servant de séparateur de millier tous les 3 caractères et enfin replace la partie décimale.


Astuce & application :
• on peut utiliser cette fonction aussi bien pour un format de nombre anglais (séparateur de millier ",") que pour un format français (séparateur de millier ".").
• on peut aussi déterminer le format de nombre du système afin de fournir le paramètre "separateur_de_mille" automatiquement grâce ce petit script :


set separateur_system to 2nd character of ((1 / 10) as string)

if
(separateur_system = ",") then
set
separateur_de_mille to "."
else
set
separateur_de_mille to ","
end if