0 votes

"ne peut pas obtenir d'alias" ?

J'ai le script suivant que je veux utiliser pour changer une seule chaîne de caractères dans un fichier Pages en une autre, et il se plante avec can't get alias . Comment résoudre ce problème ?

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

OnePablo Points 1

Voilà. Il y a eu quelques ajustements mineurs à faire pour que le script fonctionne, ce que vous verrez en le lisant.

L'essentiel est de prendre l'habitude de n'envoyer à une application que les commandes qui doivent être envoyées à l'application. Les autres commandes sont souvent mieux exécutées en dehors de l'application tell afin que les terminologies ne soient pas confondues. Par exemple, dans ce cas, je suis presque sûr que Pages -ainsi que d'autres applications qui utilisent le iWork Suite des commandes AppleScript - ont leur propre spécificateur d'objet appelé text item qui est distinct de celui que vous essayez d'employer dans votre script.

Le problème initial a toutefois été résolu de la même manière en fixant la variable à la valeur alias renvoyée par choose file en dehors de la Pages tell mais sans oublier d'utiliser le bloc alias à l'intérieur du tell pour ouvrir le fichier, en utilisant le bloc open commande.

    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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X