AppleScript : Récupérer un problème de synchronisation avec le Carnet d'Adresses sous Mac OS X
Par AglarEdain, samedi 3 mars 2007 à 05:10 :: Informatique & Co :: #78 :: rss
Ca devait arriver, vu que maintenant j'ai un MacBook Pro, je me mets à faire des AppleScripts. C'est très sympa comme langage de programmation. Mais je m'égare. Le but de mon premier AppleScript : j'ai créé un compte pour mon père, et j'ai synchronisé son Palm avec iSync pour pouvoir synchroniser après son téléphone. Le problème c'est que dans la succession de synchronisation, les numéros de téléphone au format international (c.a.d. au format +33 1 23 45 67 89 pour la France) avaient perdus leur "+". Deux solutions : corriger toutes les fiches à la main. Ou écrire un AppleScript qui va le faire à ma place.
Alors voilà , si vous aussi, vous avez besoin de modifier ou corriger des numéros de téléphone dans Carnet d'adresses (Address Book) sous Mac OS X, vous allez voir que corriger toutes les fiches séquentiellement avec AppleScript n'a rien de sorcier. C'est même plutôt facile.
-- On initialise une variable pour créer un compte-rendu.
set resultatText to "" as string
tell application "Address Book"
-- Récuperer une à une les fiches du carnet d'adresses
repeat with FicheContact in (get people)
tell FicheContact
-- Récuperer pour chaque fiche ses numéros de téléphone
set MesNumeros to phones
-- Si il y a des numéros à analyser...
if MesNumeros is not {} then
-- Alors pour chaque numéro...
repeat with J from (count MesNumeros) to 1 by -1
tell item J of MesNumeros
-- Si le numéro commence par 33 (indicatif international de la France)
if value begins with "33" then
-- Alors on rajoute le + manquant
set value to "+" & value
-- Et on rajoute une ligne dans le compte-rendu
set resultatText to resultatText & name of FicheContact & " : " & (value as string) & return
end if
end tell
end repeat
end if
end tell
end repeat
end tell
-- et on ouvre le compte-rendu dans TextEdit
tell application "TextEdit"
make new document with properties {text:resultatText}
activate
end tell
Alors, c'est pas si compliqué ? Pas besoin d'enregistrer, pas besoin de charger des modules, pas besoin de compiler le programme... Je sens que j'ai pas fini de m'amuser.
That's all, folks.
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.