"non riesco ad ottenere l'alias"?

0

Ho il seguente script che voglio usare per cambiare una singola stringa in un file di Pages in un altro, e bombarda con can't get alias . Come posso risolvere questo problema?

tell application "Pages"
    set MYTESTFILE to (choose file)
    set toFind to "Guy"
    set toReplace to "Gal"
    set theText to contents of MYTESTFILE
    set astid to AppleScript's text item delimiters
    set AppleScript's text item delimiters to toFind
    set textItems to theText's text items
    set AppleScript's text item delimiters to toReplace
    tell textItems to set editedText to beginning & toReplace & rest
    set AppleScript's text item delimiters to astid
    set text of document 1 to editedText
end tell
    
posta user55803 25.04.2018 - 03:26
fonte

1 risposta

1

Ecco qua. Sono stati apportati alcuni piccoli aggiustamenti per far funzionare lo script, che vedrai quando lo leggerai.

La cosa principale da tenere a mente è prendere l'abitudine di inviare solo i comandi a un'applicazione che deve essere inviata all'applicazione. Il resto viene spesso eseguito al meglio con il blocco tell , in modo che le terminologie non si confondano l'una con l'altra. Per esempio, in questo caso, sono abbastanza sicuro che Pages - insieme alle altre applicazioni che usano i iWork Suite dei comandi di AppleScript - hanno il loro identificatore di oggetto chiamato text item , che è diverso da quello che stai cercando di impiegare nel tuo script.

Il problema originale, tuttavia, è stato risolto in modo simile impostando la variabile sul alias restituito da choose file al di fuori del blocco Pagine tell , ma anche senza dimenticare per utilizzare quel alias all'interno del blocco tell per aprire effettivamente il file, utilizzando il comando open .

    set MYTESTFILE to (choose file)

    tell application "Pages"
        set MYTESTFILE to open MYTESTFILE
        properties of MYTESTFILE
        copy body text of MYTESTFILE to theText
    end tell

    set toFind to "Guy"
    set toReplace to "Gal"
    set astid to AppleScript's text item delimiters
    set AppleScript's text item delimiters to toFind
    set textItems to theText's text items
    set AppleScript's text item delimiters to toReplace
    tell textItems to set editedText to beginning & toReplace & rest
    set AppleScript's text item delimiters to astid

    tell application "Pages" to set body text of MYTESTFILE to editedText
    
risposta data 26.04.2018 - 17:47
fonte

Leggi altre domande sui tag