Quickloox

Dal mondo Apple all'universo digitale, in visualizzazione rapida dell'ovvio

21 dic 2008

Trova le differenze in questo AppleScript

Ci sono programmi fantastici, gratuiti e stracolmi di funzioni. Uno di questi è TextWrangler, editor di testo di Bare Bones Software.

Sono soggetti interessanti per imparare AppleScript, perché contengono funzioni utili che ci possono ispirare. Che cosa più inutile di scrivere un AppleScript capace di imitare una funzione esistente? Contemporaneamente, che cosa più utile di un AppleScript che imita una funzione e quindi ci permette di capire come quella funzione è, letteralmente, costruita?

L’AppleScript che segue attiva il confronto tra due documenti di testo dentro TextWrangler. Funzione che il programma esegue benissimo da solo; proprio per questo è perfetto per verificare che l’AppleScript funzioni bene. Il che ci permetterà di rifare più facilmente le stesse cose, per dire, con un altro programma che ne è sprovvisto.

Mal di testa? Ottimo, si lavora meglio. :-)

tell application “TextWrangler” activate

– fin qui tutto normale, facciamo partire il programma

set opzioni to {ignore leading spaces:false, ignore trailing spaces:false, ignore extra spaces:false, case sensitive:true}

– si impostano i parametri di confronto: occhio alle maiuscole, ignora gli spazi superflui eccetera. I parametri si trovano nel dizionario di TextWrangler

set dataDoc1 to modification date of document 1 set dataDoc2 to modification date of document 2

– inserisce in variabili le date di modifica dei due documenti

if dataDoc1 > dataDoc2 then set nuovaFinestra to text window 1 set vecchiaFinestra to text window 2 else set nuovaFinestra to text window 2 set vecchiaFinestra to text window 1 end if

– assegna il documento a ciascuna finestra secondo le date di modifica

set risultato to compare nuovaFinestra against vecchiaFinestra options opzioni

– inserisce in una variabile il risultato del confronto tra le due finestre, che fa parte del dizionario specifico di TextWrangler

if not differences found of risultato then display dialog reason for no differences of risultato buttons {“OK”} default button “OK” with icon note

– se non ci sono differenze, lo annuncia, sempre attingendo al dizionario AppleScript di TextWrangler

end if end tell

Lo script originale era per BBEdit e arriva dalla mailing list BBEdit-talk. TextWrangler però è gratis e un confronto tra due file è sempre un confronto tra due file.

Commenta