How to get word offset all instances of a string in a chunk of text?

Keith Clarke keith.clarke at me.com
Thu Aug 30 05:24:37 EDT 2018


Folks,
Is there a single-pass mechanism or more efficient way of returning the wordOffset of each instance of ‘the’ in ‘the quick brown fox jumped over the lazy dog’ than to use two passes through the text?
Pass-1. Count the instances of ‘the’ into an array and then
Pass-2. Repeat for the count of instances using wordOffset, with a wordsToSkip variable derived from the previous loop’s offset

I’m I’m wondering if there’s something I’ve not yet learned about (nested?) arrays that might extend the unique word counter code that Alex, Paul & others helped me to fix a few days ago, to add a sub-array of wordOffset alongside word count? 

# Prepare noisewords array

repeat for each trueWord W in tNoiseWords

put true into tANoise[W]

end repeat


# Build unique words array

repeat for each trueWord W in tSource

if tANoise[W] then next repeat

add 1 to tAWords[W][N]

end repeat


# Convert unique words array to list


repeat for each key K in tAWords

put K && tAWords[K][N] & CR after fld "Words"

end repeat


sort lines of field "Words" descending numeric by word 2 of each


end repeat

Any ideas or steer towards a lesson / worked example greatly appreciated.
Best,
Keith
    


More information about the use-livecode mailing list