Question

I am trying to create a service in OSX leopard that counts the number of words of selected text. I have automator set to run an applescript, with the following put in it:

on run {input, parameters}
        count words of input
        display alert "Words: " & input
        return input
end run

When I compile the script, it says it cannot count every word. What am I doing wrong?

Thanks for the help,

Elliott

Was it helpful?

Solution

First of all, I presume you are testing this in Automator, and that's where the error is taking place? If so, the likely problem is that there is no input—so it can't count the words of nothing. In order to test it successfully, you need to temporarily add a "Get Specified Text" action before the Run AppleScript action, and enter some test text into that field. You'll have to remove the Get Specified Text action before using it as an actual service.

Secondly, you need to use

count words of (input as string)

in order to get a proper count, otherwise it'll return zero.

OTHER TIPS

I made one here, on Github:

https://gist.github.com/1616556

The current source is:

on run {input, parameters}
    tell application "System Events"
        set _appname to name of first process whose frontmost is true
    end tell
    set word_count to count words of (input as string)
    set character_count to count characters of (input as string)
    tell application _appname
        display alert "" & word_count & " words, " & character_count & " characters"
    end tell
    return input
end run

Use Automator.app to create a new service, and then select the Run AppleScript action. Paste this code in to the text box, and save as Word and Character Count. Now switch to a new app, select some text, and open the context menu to find the new option.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top