Come posso salvare una variabile tra le esecuzioni di Applescript?

0

Sto provando a salvare tre variabili distinte che la mia applicazione di Applescript sarebbe quindi in grado di accedere all'avvio, e se l'utente desidera che possa manipolare tali variabili dall'interno dell'applicazione.

Più in particolare, sto lavorando a uno script che esegue una serie di equazioni basate sulla latitudine e longitudine selezionata dall'utente e restituisce i risultati in una stringa, incluso il nome della città. Se l'utente lo desidera, può scegliere una città diversa e riavviare lo script in base a quella città.

Scegliere una città diversa, impostare le variabili e rieseguire di conseguenza lo script va bene. Posso semplicemente impostare una subroutine contenente il seguente codice:

set choice to choose from list {"City A","City B","City X"}
if choice is "City A"
    set city to "City A"
    set lat to (latitude of City A)
    set lon to (longitude of City A)
else if choice is "City B"
...

Il mio problema è che devo inizializzare queste variabili all'avvio dello script. Posso impostare un valore predefinito per queste variabili, oppure posso eseguire questa subroutine all'inizio dello script, ma non riesco a trovare un modo per salvare la scelta per le esecuzioni future, in modo che il risultato di questa scelta diventa l'impostazione predefinita. Cioè, se per impostazione predefinita lo script esegue queste equazioni per la città A e seleziono la città B dall'elenco, al prossimo avvio dello script, dovrebbe eseguire automaticamente le equazioni per la città B, senza alcun input da parte dell'utente.

Ho provato a configurare un secondo script con esattamente tre righe di codice:

property city : "City A"
property longitude : (longitude of City A)
property latitude : (latitude of City A)

ma successivamente si è reso conto che fallisce esattamente per lo stesso problema: Applescripts non può salvare le variabili dentro se stesse tra le attività. Posso aggiornare una variabile esterna una volta caricata nello script corrente, ma in realtà non modifica lo script originale.

Un'altra cosa che ho provato era creare un file vuoto da qualche parte e rinominarlo in base alla scelta dell'utente, quindi testare il nome del file e aggiornare le variabili di conseguenza, ma mi piacerebbe anche condividere l'applicazione per gli altri per essere in grado di utilizzare, e questo richiederebbe loro di avere anche questo file in una cartella specifica. Per qualche ragione, Script Editor non mi piace quando cerco di ottenere il percorso del file di un file all'interno di un pacchetto di applicazioni, quindi a meno che non ci sia una correzione per questo, non posso semplicemente nascondere il file all'interno dell'applicazione stessa.

Ho visto qui che se salvi il file come .applescript puoi farlo scrivere su stesso, ma non sono sicuro di come faresti a farlo.

Sono consapevole che esiste una cosa chiamata Database Events che posso eventualmente manipolare, ma non sono sicuro di come farei per farlo.

Il minimo che sto cercando è un modo per salvare le variabili per accedervi al prossimo avvio, ma se qualcuno potesse affrontare tutte le possibilità che ho menzionato sopra, sarebbe eccellente.

    
posta DonielF 26.07.2017 - 01:28
fonte

1 risposta

1

Aggiungi una dichiarazione property all'inizio del tuo script. Le modifiche a tale proprietà durante l'esecuzione del tuo script saranno salvate e disponibili al prossimo avvio.

The value set by a property definition is not reset each time the script is run; instead, it persists until the script is recompiled. [src]

    
risposta data 26.07.2017 - 01:40
fonte

Leggi altre domande sui tag