Percorso: ilMac.net > Scuola di Mac > Corsi > Guida a AppleScript


Guida a AppleScript

Il tempo è...sotto controllo

Le date

Appoggiandosi al cuore del MacOS AppleScript puo’ gestire anche le date.
Il piu’ semplice comando è:

current date

che mostrera’ nella finestra result la data corrente nel formato giorno, mese, anno, ora, minuti, secondi (che precisione!).
La gestione delle date puo’ avere moltissimi usi, ad esempio si puo’ scrivere uno script che cancelli tutti i files di una cartella creati prima di una certa data.
Ma ora vediamo qualcosa di un po’ piu’ semplice. Per tutti gli smemorati ecco due bei programmi utili. Il primo serve da promemoria per i compleanni dei nostri cari, il secondo per gli appuntamenti importanti.

Compleanni !


set nome_festeggiato to "palmy" --cambiare con il nome del festeggiato

set compleanno to "14/7" --cambiare con la data di compleanno desiderata
set mese to month of date compleanno
set giorno to day of date compleanno

if mese = month of (current date) and giorno = day of (current date) then
3 beep
display dialog "Oggi è il compleanno di " & nome_festeggiato with icon 1 buttons {"OK"} default button 1
end if


Veniamo alla spiegazione che è molto semplice...
Attribuiamo alla costante nome_festeggiato il nome del festeggiato (ma davvero? =).
La costante compleanno ovviamente conterra’ il giorno e il mese del
compleanno.
Il comando set mese to month of date compleanno serve a cambiare il nome alla costante (da month a mese) per una migliore chiarezza del listato.
In seguito troviamo un IF per verificare se la data di oggi corrisponde a
quella del compleanno. Da notare che AppleScript tratta separatamente
il giorno, il mese e l’anno, quindi vanno verificati entrambi. Si noti quindi
l’uso dell’operatore logico AND. In sintassi italiana la frase potrebbe essere tradotta con: “se il mese (del compleanno) è uguale a quello della data corrente e il giorno (del compleanno) è uguale a quello della data corrente allora...”. Devono quindi verificarsi due condizioni.
Ovviamente una volta salvato questo script è da inserire nella cartella
“Avvia con”.
Tutto chiaro?

Rendez-vous !

Ed ecco qualcosa di utile per coloro che facilmente si dimenticano degli appuntamenti della giornata.


repeat until time of (current date) > 57600 --è possibile cambiarla facendo corrispondere un’ora a 3600
end repeat
5 beep
display dialog "Sono le 16 e mezza! Ricordati che..." with icon 0


Immaginiamo che voi abbiate un appuntamento alle 16.
AppleScript il tempo lo gestisce il ticks (in secondi), quindi un minuto corrisponde a 60 ticks, mentre un’ora a 60 (ticks) x 60 (minuti) quindi a 3600 ticks. Le ore 16 corrispondono a 3600 * 16 = 57600 (come potete vedere nel listato).
In questo caso particolare lo script dovrebbe continuamente controllare l’ora e quindi tenere impegnato (anche se minimamente) continuamente il processore, ma grazie al multitasking del Mac tutto cio’ puo’ essere eseguito in background.
L’istruzione repeat....until (ovvero ripeti....finché) serve a far ripetere in continuazione al Mac un determinato set di istruzioni finché non si verifica una condizione. In questo caso pero’ noi abbiamo solo bisogno che il Mac non faccia nulla (in background mentre noi possiamo continuare a lavorare), finché l’ora non corrisponde alle 16. A quel punto ci avviserà con 5 beep ed una finestra di dialogo.

Date e files

E veniamo allo script piu’ complesso della lezione.
Con questo script viene controllata la data di creazione di un file e, se non
soddisfa le nostre richieste (specificate nel listato dello script), il file viene automaticamente cancellato.
Vediamo il listato:


choose file with prompt "Scegli il file da verificare:"
set doc to result
info for doc
set x to result
creation date of x
set data_creazione to result

set mese to month of data_creazione
set giorno to day of data_creazione
set anno to year of data_creazione

if giorno > 1 and anno < 1999 then
beep
display dialog "E' stato creato prima del 1999, verra' quindi cancellato." with icon 0
tell application "Finder"
delete doc
end tell
end if


La prima istruzione serve per la selezione del file mediante una finestra
di apri/salva.
Una volta selezionato, al file viene attribuito il nome “doc” da noi.
Da “doc” preleviamo tutte le informazioni (che verranno registrate nella
RAM e non mostrate all’utente).
Tutta la stringa di informazioni la chiamiamo x. A noi interessa solo la data di creazione che preleviamo tramite il comando creation date of x.
Ora alla data di creazione diamo il nome “data_creazione”.
Da questa stringa prendiamo il giorno il mese e l’anno e come per lo
script precedente andiamo a verificarli.
Se il file scelto è stato creato prima del 1999 verrà automaticamente cancellato.



Data di pubblicazione: 09-04-2000
L'intero contenuto di questo sito dal 1998 del Team di ilMac.net, vietata ogni riproduzione senza il consenso scritto da parte degli autori.