is among the words AND find words

Jim Hurley jhurley0305 at sbcglobal.net
Wed Dec 21 00:10:42 EST 2011


Think I will try something like this.

Test to see if the word, as a string, is in the text.
If so, then strip out all characters not between "a" and "z" or "A" and "Z"  and then check to see if the stripped-down word is the same as the test word.

That way I will find "time" even if it appears as "(time)" or "time." or "time," or with quotes on either side, etc.

I wonder what algorithm LC uses in "Find word(s)" to find only words.

Jim Hurley

> Thanks Bob, Good thought, but it still doesn't work.
> 
> The script:
> 
> on mouseUp
>   put "now is the time, for all good men." into tText
>   set wholematches to true
>   --set wholematches to false
>   put wordOffset("time", tText) into temp1
>   put wordOffset("time," , tText) into temp2
> end mouseUp
> 
> shows 0 for temp1 and 4 for temp2. The comma in "time," is need to get a match.
> 
> What I need is
> 
>   put wordOffset("time", "Now is the time, for all good men.") 
> 
> to show 4 when wholeMatches is true
> 
> It appears that there is no way in LiveCode to find whole words in a variable  reliably.
> 
> Wish there were.
> 
> Jim Hurley
> 
> 
> 
>> From: Bob Sneidar <bobs at twft.com>
>> To: How to use LiveCode <use-livecode at lists.runrev.com>
>> Subject: Re: is among the words AND find words
>> Message-ID: <F68E06CA-9008-483A-B6AD-D91E5AC1F011 at twft.com>
>> Content-Type: text/plain; charset=us-ascii
>> 
>> Not sure if wholeMatches affects the find command, but if you set wholeMatches to true and then use wordOffset("time",field "myField") then I think you will get the results you are looking for. wordOffset() returns 0 when it fails to find a match. 
>> 
>> Bob
>> 
>> 
>> On Dec 20, 2011, at 4:42 PM, Jim Hurley wrote:
>> 
>>> If the sentence:
>>> 
>>> "Now is the time, for all good men."
>>> 
>>> is within the field "myField" , then
>>> 
>>> find word "time" in field "myField" 
>>> 
>>> is successful. The word "time" is found despite the fact that it is not delimited with spaces on either side.
>>> 
>>> But
>>> 
>>> "time" is among the words of "Now is the time, for all good men." 
>>> 
>>> returns false, since "is among the words" reads the comma after "time".  It requires the spaces on either side of "time" as delimiters.
>>> 
>>> Has this come up before and has it been suggest that this be an enhancement?
>>> 
>>> That is to say, it would be helpful if "is among the words" and "find word(s)" behave the same with respect to the space delimiter.
>>> 
>>> Or am I missing something?
>>> 
>>> Jim Hurley
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
>> 
>> 
> 




More information about the use-livecode mailing list