0 votos

¿"No puedo conseguir alias"?

Tengo el siguiente script que quiero usar para cambiar una sola cadena de un archivo Pages por otra, y bombardea con can't get alias . ¿Cómo puedo solucionarlo?

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

1voto

qarma Puntos 71

Aquí tienes. Hubo que hacer unos pequeños ajustes para que el script funcionara, que verás cuando lo leas.

Lo principal a tener en cuenta es acostumbrarse a enviar a una aplicación sólo los comandos que deben enviarse a la aplicación. El resto suele realizarse mejor fuera de la tell para que no se mezclen las terminologías. Por ejemplo, en este caso, estoy bastante seguro de que Páginas -junto con otras aplicaciones que utilizan el Suite iWork de los comandos AppleScript- tienen su propio especificador de objeto denominado text item que es distinta de la que intentas emplear en tu script.

El problema original, sin embargo, se resolvió de forma similar estableciendo la variable en el valor alias devuelto por choose file fuera del Páginas tell pero sin olvidarse de utilizar el bloque alias dentro del tell para abrir realmente el archivo, utilizando el bloque open mando.

    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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X