The Omni Group
These forums are now read-only. Please visit our new forums to participate in discussion. A new account will be required to post in the new forums. For more info on the switch, see this post. Thank you!

Go Back   The Omni Group Forums > OmniOutliner > OmniOutliner 3 for Mac
FAQ Members List Calendar Search Today's Posts Mark Forums Read

 
Word Count Revisited Thread Tools Search this Thread Display Modes
Hi

I confess I last posted here about word count on 6th August.

http://forums.omnigroup.com/showthread.php?t=9253

I'm trying not to become the word count moaner of the OmniOutliner forums.

The word count implementation could be immensely cool if it were possible.

Other outliners, like Opal (formerly Acta) produce a single figure for the whole document, which is very much better than nothing. However what would be great would be a word count that could give figures for sections of the document.

In that last post I wrote about the idea a special word count column, giving the count for the main editing column in OmniOutliner and a summary at the top.

I don't know how doable that would be, but it would be great if possible.

Another approach would be to have the word count as a style. In this the default for the word count style would be "on" for everything but the user could apply the word count "off" style to any chosen elements. It would be applied just like any other style.

Being able to specify, for example, that column 2 would not be included in the word count would be great because I normally have a notes column to the right of the main editing column. This is a bit like the "comments" in a word processor.

So what I'm suggesting is that there are two superb user interface paradigms in OmniOutliner already in place to create a truly outstanding word count feature.

P.S. I'm delighted by OmniFocus 1.5. I'm going to cross off the "post to OmniOutliner forum about word count" item now :)
 
Just so that no one else is tempted... I was about to post that you can get statistics like this system wide using WordService from DEVONtechnologies, but I noticed in your original post that it isn't working very well for you in OmniOutliner... so back to square one ;)
 
Please make sure to send this an email to omnioutliner@omnigroup.com requesting this if you haven't before. While we do try to read everything on the forums, it's harder for us to document requests from the forums.
 
Quote:
Originally Posted by DerekM View Post
Please make sure to send this an email to omnioutliner@omnigroup.com
Hi Derek

Thank you for your post. I will send the email.
 
One can of course get a rough word count (without any great speed) through the Applescript interface ...

A workable hack for some purposes.

(some variant of the following)

Code:
tell application "OmniOutliner Professional"
	set intWords to 0
	
	tell front document
		repeat with oRow in rows
			repeat with oCell in cells of oRow
				if type of column of oCell is rich text then
					repeat with oText in text of oCell
						set intWords to intWords + (count of words of oText)
					end repeat
				end if
			end repeat
		end repeat
	end tell
	
	display dialog (intWords as string) & " words"
end tell

Last edited by RobTrew; 2008-11-22 at 01:43 PM..
 
Thanks Rob, it works great.
How can I do if I want to use quite the same script to count characters ? I'm not so familiar with apple script now !
 
Something like this ?

Code:
tell application "OmniOutliner Professional"
	set intChars to 0
	
	tell front document
		repeat with oRow in rows
			repeat with oCell in cells of oRow
				if type of column of oCell is rich text then
					repeat with oText in text of oCell
						set intChars to intChars + (count of characters of oText)
					end repeat
				end if
			end repeat
		end repeat
	end tell
	
	display dialog (intChars as string) & " characters"
end tell
 
Quote:
Originally Posted by RobTrew View Post
One can of course get a rough word count (without any great speed) through the Applescript interface ...
Thank you, I'm going to check this out.
 
Just had to make a rough of count some words in a hurry this morning.

For what its worth, I am now using a simpler applescript to do this, which may run a little faster.

It gives 3 word counts:
  1. Whole document
  2. Visible rows
  3. Selected rows

Code:
-- Ver 0.6
-- If value of following property is edited to true,
-- then total word count will be placed in clipboard
property pToClipboard : true
property pDelim : space
property pEOL : return & return


tell application id "com.omnigroup.OmniOutlinerPro3"
	try
		activate
		set oDoc to front document
	on error
		return
	end try
	
	-- Ensure that text item delimiter is SPACE
	-- and prepare to restore any other value at the end of the script
	set strDelim to my text item delimiters
	set my text item delimiters to pDelim
	
	tell front document
		
		set lstAllTopics to topic of rows
		set lstVisblTopics to topic of rows where visible is true
		set lstSeldTopics to topic of selected rows
		
		-- Count total, visible, and selected rows
		set intAllRows to count of lstAllTopics
		set intVisblRows to count of lstVisblTopics
		set intSeldRows to count of lstSeldTopics
		
		-- Count words in all, visible, and selected rows
		set intAllWords to count of words of (lstAllTopics as text)
		if intVisblRows is not equal to intAllRows then
			set blnAllVisible to false
			set intVisblWords to count of words of (lstVisblTopics as text)
		else
			set blnAllVisible to true
			set intVisblWords to intAllWords
		end if
		if intSeldRows is not equal to intAllRows then
			set blnAllSeld to false
			set intSeldRowWords to count of words of (lstSeldTopics as text)
		else
			set blnAllSeld to true
			set intSeldRowWords to intAllWords
		end if
	end tell
end tell

-- Prepare report to user
set strMsg to (intAllWords as text) & pl(intAllWords, "word") & " in total   (" & (intAllRows as text) & pl(intAllRows, "row") & ")" & pEOL
if not blnAllVisible then set strMsg to strMsg & 
	(intVisblWords as text) & pl(intVisblWords, "word") & " in " & (intVisblRows as text) & " visible" & pl(intVisblRows, "row") & ")" & pEOL
if not blnAllSeld then
	set strMsg to strMsg & 
		(intSeldRowWords as text) & pl(intSeldRowWords, "word") & " in " & (intSeldRows as text) & " selected" & pl(intSeldRows, "row")
end if
try
	display dialog strMsg with icon 1 with title ("WORD COUNT")
end try

set my text item delimiters to strDelim
if pToClipboard then 
	tell application id "com.apple.finder" to set the clipboard to (intAllWords as text)

-- Pluralize word unless lngQuant is 1
on pl(lngQuant, strWord)
	if lngQuant is 1 then return " " & strWord
	" " & strWord & "s"
end pl

--

Last edited by RobTrew; 2010-06-25 at 05:32 AM.. Reason: ver 0.6 Minor edits and improvements in reporting
 
 


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes


Similar Threads
Thread Thread Starter Forum Replies Last Post
OmniGraffle Word Count RobTrew OmniGraffle General 2 2010-10-04 01:48 PM
Checklists, revisited Arild OmniFocus 1 for Mac 5 2010-06-08 07:26 AM
Word Count and Statistics Patrick J OmniOutliner 3 for Mac 7 2009-04-20 10:50 PM
Word Count Patrick J OmniOutliner 3 for Mac 0 2007-10-20 09:40 AM
Word Count m_s OmniOutliner 3 for Mac 0 2006-10-25 03:49 AM


All times are GMT -8. The time now is 01:28 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.