15

Come si fa: creare un conta caratteri per TextEdit con AppleScript

Scritto da: Maurizio Natali Pubblicato alle 09:36 in: Come si fa, Mondo Mac
7mag

Vi riporto uno script che ho trovato ieri e che potrebbe interessarvi. Sia a scopo didattico che per la funzione che implementa. Sapete che molti software all’interno del nostro amato Mac sono interamente controllabili da Apple Script. Con qualche riga di codice sapientemente realizzata, è possibile creare un conta caratteri per TextEdit, che non ha questa funzione nativamente.

Aprite AppleScript Editor in Applicazioni / Utility ed incollate il seguente codice:

tell application "TextEdit"
    set word_count to count words of document 1
    set char_count to count characters of document 1
    set show_words to (word_count as string) & " parole. (" & (char_count as string) & " caratteri)"
    set dialog_title to "TextEdit Word Count"
    display dialog show_words with icon 1 with title dialog_title buttons {"Ok"} default button "Ok"
end tell

Salvatelo con un nome comprensibile, come WordCount.scpt, nella cartella utente/Libreria/Scripts. Ora nelle preferenze di AppleScript Editor, abilitate la voce “mostra menu Script..”:

menu script

Bene, siamo ora pronti per usare il conta caratteri. Scrivete un po’ di testo in TextEdit e poi attivare lo script che troverete tramite l’icona che abbiamo abilitato nella barra dei menu. Ecco il risultato:

Conta Caratteri per TExtEdit con Applescript

Fonte: Mac OS X Hints

Commenti

  1. 1

    Ciao e complimenti per il blog!

    Lo script è molto interessante.

    A tal proposito… è possibile ordinare il testo (sequenza crescente o decrescente) utilizzando TextEdit?

    Magari hai uno script anche per questo!
    :)

    Terzaghi
    7 maggio 2010 ore 10:48
  2. 2

    non ho capito cosa intendi…

    simplemal
    7 maggio 2010 ore 10:52
  3. 3

    Scusa il doppio post.

    Mi riferisco alla funzione presente in un qualunque word processor (office/openoffice.org).

    Tale funzione permette di ordinare testo e numeri in ordine crescente (A-Z) oppure descrescente.

    Terzaghi
    7 maggio 2010 ore 11:02
  4. 4

    di solito questa funzione è relativa alle tabelle… il testo come fai ad ordinarlo in ordine crescente?

    simplemal
    7 maggio 2010 ore 11:04
  5. 5

    @simplemal

    Hai ragione.

    Però considera il seguente esempio… una serie di indirizzi e-mail da ordinare:
    primo indirizzo
    secondo indirizzo
    terzo indirizzo
    etc.

    la funzione ordina, in tal caso, è applicabile e permette appunto di ordinare gli indirizzi mail.

    Spero di aver chiarito la questione.
    :)

    Terzaghi
    7 maggio 2010 ore 11:16
  6. 6

    si tratterebbe quindi di identificare la prima lettera di ogni paragrafo per poi spostarlo… mm.. forse si potrebbe fare, ma non penso sia semplicissimo

    simplemal
    7 maggio 2010 ore 11:18
  7. 7

    Mi è capitato di utilizzare tale funzione su OpenOffice.org.

    Avrei preferito che anche TextEdit fosse in grado di fare la stessa cosa essendo piuttosto reattivo (considerando che utilizzo un vecchio iBook G4).

    Terzaghi
    7 maggio 2010 ore 11:30
  8. 8

    @Terzaghi
    Prova con questo:

    ———————————
    tell application “TextEdit”
    set docText to text of document 1
    set text of document 1 to my sortTextParagraphs(docText)
    end tell

    on sortTextParagraphs(someText)
    set sortedText to do shell script “echo ” & quoted form of someText & ” | sort -f”
    return sortedText
    end sortTextParagraphs
    ———————————

    Usa il comando sort per riordinare i paragrafi del documento di TextEdit.

    7 maggio 2010 ore 11:56
  9. 9

    @MacMomo, grazie per la prontezza… comunque ti segnalo due cose
    1) nell’echo hai usato doppi apici dentro doppi apici… quelli interni conviene sostituirli con ‘
    2) non ho capito cosa dovrebbe fare lo script.. :) ed effettivamente l’ho provato e non funzia

    simplemal
    7 maggio 2010 ore 12:06
  10. 10

    @simplemal, non ho capito cosa intendi con doppi apici dentro doppi apici… :-\
    Quanto allo script a me funziona correttamente.
    Prende tutte le linee di testo dal documento di TextEdit e le rimette in ordine alfabetico.
    Se ad esempio hai una lista di nomi, uno per riga, lo script te li riordina.

    7 maggio 2010 ore 14:03
  11. 11

    A me ha dato un errore per gli apici che non si possono usare innestati se identici perché al primo uso ti chiude la stringa echo e il resto del testo genera errore. Ad ogni modo a me non funzia, ma forse sbaglio qualcosa io che l’ho visto un po’ frettolosamente, comunque grazie

    simplemal
    7 maggio 2010 ore 14:12
  12. 12

    @MacMomo
    Ciao e grazie per l’intervento.

    Ho provato lo script… ho copiato le righe di codice in Script Editor ma durante il salvaggio ottengo un errore:
    http://img512.imageshack.us/img512/6772/errorehi.png

    Terzaghi
    7 maggio 2010 ore 15:06
  13. 13

    Forse ho capito qual’è il problema.
    Nel commento le virgolette semplici (o doppi apici) vengono convertite in virgolette aperte e chiuse, quindi lo ScriptEditor quandi si copia/incolla il codice non le riconosce.
    Basta sostituirle con quelle normali e tutto dovrebbe funzionare.

    7 maggio 2010 ore 15:10
  14. 14

    @MacMomo
    Grazie!
    Lo script funziona (maledette virgolette) :)

    Terzaghi
    7 maggio 2010 ore 15:28
  15. 15

    @tutti
    ciao, premetto che sono un completo neofita per quanto riguarda la programmazione (nonostante sia un perito informatico),
    ma non riesco a registrare lo script originale dell’articolo.

    Rimane perennemente in attesa e l’unico pulsante selezionabile è il famigerato “Interrompi”.

    Vi segnalo inoltre che ho modificato 3 cose dello script, giusto per fare il pirla ho provato a scrivere:
    ” sbatte. (” , ” simbolozzi)” e {“Biella!”} invece di:
    ” parole. (” , ” caratteri)” e {“Ok”}

    ora, mentre scrivo questo ho capito dov’è il mio errore: la dicitura del pulsante non può essere cambiata per non so quale motivo e quindi questo post è pura vana gloria.

    Ho provato anche l’altro e sostituendo gli apici va alla grande.

    comunque, grazie.

    ps
    è stupendo programmare senza esserne in grado!!
    grazie!

    2 marzo 2011 ore 15:27

Scrivi un commento Leggi ed attieniti alle Regole del Blog