"no se puede obtener el alias"?

0

Tengo la siguiente secuencia de comandos que quiero usar para cambiar una cadena en un archivo de Pages a otra, y bombardea con can't get alias . ¿Cómo soluciono esto?

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
    
pregunta user55803 25.04.2018 - 03:26

1 respuesta

0

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
    
respondido por el CJK 26.04.2018 - 17:47

Lea otras preguntas en las etiquetas