AppleScript et Themes

FONCTION POUR ECRIRE UN TEXTE DANS UN FICHIER TEXTE
Cette fonction est proposée par Vincent DUVERT.
Beaucoup de scripts ont besoin d'écrire dans un fichier. Or, ce fichier doit être placé PAR L'UTILISATEUR dans un endroit précis du disque. Et si l'utilisateur ne le place pas le fichier a cet endroit le script risque d'afficher des messages incompréhensibles, ou pire, de planter ! Alors voici une fonction qui résoudra tous ces problèmes, en permettant d'écrire dans un fichier texte situé à un emplacement précis un texte. (a noter que si le fichier texte n'existe pas, cette fonction le crée).
on ecrire(ceTexte, cheminDAcces, debutDuDocument)
    try 
          tell application "Finder" to set the cheminDAcces to the cheminDAcces as text
           set the openCheminDAcces to open for access the file cheminDAcces with write permission
           if debutDuDocument then set eof of the openCheminDAcces to 0
           write ceTexte to the openCheminDAcces starting at eof
           close access the openCheminDAcces
           return true
     on error
     try
      close access the openCheminDAcces
            on error
            end try
      return false
     end try
end ecrire
Vous avez du voir, il y a 3 variables a définir; la 1ere, ceTexte, doit contenir le texte a écrire. (ex: "Hello World") la 2eme, cheminDAcces, doit contenir le chemin d'accès jusqu'au fichier (si vous voulez que le script vous demande ou vous vouler l'enregistrer, tapez (new file)) la 3eme, debutDuDocument, vous demande si vous voulez que le script efface tout le fichier avant de mettre le nouveau texte.(tapez true pour oui, false pour non. A noter que si vous créez un nouveau document, cette variable ne sert a rien. Initialisez la à true)
Pour tester cette fonction, tapez la dans une fenêtre de script, et tapez en dessous: ecrire("Hello World !", (new file),true) -Lancez le script. Un message vous demande ou vous voulez enregistrer.Choisissez un emplacement,donnez un nom et cliquez sur OK. -Retrouvez le fichier et double-cliquez dessus.Il devrait contenir Hello World !
 
OPTIMISATION D'UN SCRIPT POUR UN MENU SCRIPT
Un des problèmes des scripts lancés depuis le menu script d’une application, ce sont les allez-retour lorsque le bloc tell application ... end tell est employé pour atteindre l’application elle-même.
Il ne faudrait pas l’employer, puisque par défaut le script est lancé depuis l’application, il se trouve donc déjà dans l’environnement de cette application, donc à chaque appel il s’appelle lui-même... ce qui cause des dysfonctionnements, souvent bloquant.
Mais, me direz-vous, on ne peut pas écrire le script sans ce tell application ... end tell, sinon, à la compilation, les termes employés ne sont pas reconnus ... alors, comment faire ?...
Voir la suite du texte : (dans une nouvelle fenêtre du navigateur)
 
 
DIFFERENCE ENTRE COPY TO ET SET TO
 
A première vue la différence entre les deux n'est pas évidente puisque si on écrit :
copy 2 to Var
ou :
set Var to 2
on obtient la même chose, à savoir : Var = 2
Et pourtant la différence entre les deux syntaxes est importante, puisque si on écrit :
set MaListe to {1,2,3}
set TaListe to MaListe
set item 1 of MaListe to 4

dans ce cas nous obtenons TaListe = {4,2,3}, alors que si on écrit :
set MaListe to {1,2,3}
copy MaListe to TaListe
set item 1 of MaListe to 4

dans ce cas nous obtenons TaListe = {1,2,3}.
Ceci est valable pour les listes, les records et les script objects.
Voir page 206-207 de "AppleScript Language Guide for