Aquí tienes. Hubo que hacer algunos ajustes menores para que el script funcionara, lo que verás cuando lo leas.
Lo más importante a tener en cuenta es tener la costumbre de enviar comandos a una aplicación que deba enviarse a la aplicación. El resto a menudo se realiza mejor fuera del bloque tell
, de modo que las terminologías no se confundan entre sí. Por ejemplo, en este caso, estoy bastante seguro de que las Páginas , junto con otras aplicaciones que usan la iWork Suite de los comandos de AppleScript, tienen su propio especificador de objeto llamado text item
, que es distinto del que intentas emplear en tu script.
El problema original, sin embargo, se resolvió de manera similar al establecer la variable en el alias
devuelto por choose file
fuera del bloque Pages ' tell
, pero también sin olvidar para usar ese alias
dentro del bloque tell
para abrir el archivo, usando el 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