2 votes

AppleScript pour créer un format d'espacement comme "S P A C I N G" ?

Afin de mettre en forme les documents textuels de manière plus lisible, il serait bien de formater les textes sélectionnés par un script apple exécuté via les services du menu contextuel de la manière suivante :

  1. sélectionnez "texte" avec le curseur
  2. sélectionner le menu contextuel/services Espacement (à créer)
  3. Le texte sélectionné sera formaté en "T E X T".

Est-ce que quelqu'un a le savoir-faire pour programmer un tel script ?

3voto

Graham Miln Points 39606

AppleScript pour développer le texte

Le snippet AppleScript suivant ajoute un espace entre chaque caractère d'une chaîne de caractères. Copiez et collez ce code dans Applications > Utilitaires > Éditeur de script. pour l'essayer :

set myText to "hello world"
set myResult to ""

repeat with c in every character in myText
    set myResult to myResult & " " & c
end repeat

display dialog myResult

Automator Service

En utilisant ce script, vous pouvez utiliser Applications > Automator pour créer votre service de menu contextuel.

Automator workflow to expand selected text

New text expand service in TextEdit

  1. Lancez Automator.app

  2. Créez un nouveau flux de travail, sélectionnez Service

  3. Ajouter un Exécuter AppleScript action

  4. Copiez et collez le script :

    on run {input, parameters}
    
        set myText to input as string
        set myResult to ""
    
        repeat with c in every character in myText
            set myResult to ((myResult & " " & c) as string)
        end repeat
    
        -- Convert to upper case using `tr`
        set myResult to do shell script "echo " & quoted form of (myResult) & " | tr [:lower:] [:upper:]"
    
        return myResult
    end run
  5. Sélectionnez La sortie remplace le texte sélectionné

  6. Sauvegardez et testez votre nouveau service

1voto

user3439894 Points 52496

Pour que le texte sélectionné soit converti en majuscules et qu'un espace soit ajouté entre chaque caractère, ajoutez la ligne suivante au script posté par Graham Miln.

set myResult to do shell script "echo " & quoted form of (myResult) & " | tr [:lower:] [:upper:]"

Ainsi, en Automator ce serait :

on run {input, parameters}

    set myText to input as string
    set myResult to ""

    repeat with c in every character in myText
        set myResult to ((myResult & " " & c) as string)
    end repeat

    set myResult to do shell script "echo " & quoted form of (myResult) & " | tr [:lower:] [:upper:]"

    return myResult

end run

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