Bob et. al.


> 
> Message: 14
> Date: Wed, 21 Dec 2011 08:24:59 -0800
> From: Bob Sneidar <b...@twft.com>
> To: How to use LiveCode <use-livecode@lists.runrev.com>
> Subject: Re: is among the words AND find words
> Message-ID: <ba41a52b-8b6e-4dc0-9996-1253098ea...@twft.com>
> Content-Type: text/plain; charset=us-ascii
> 
> I think this underscores the need for the words keyword to be upgraded to 
> reflect real text. For instance, word delimiters could be a property 
> containing all the characters which might be word delimiters, all the 
> punctuations for example. I don't know how you would treat a hyphen. 

That would work.

> 
> Upon thinking about it, I am not sure what the application would be for 
> finding specific words in an english (or any other languages) phrase. It is 
> useful for finding keywords in a Livecode statement for sure. 

> Bob

The application would be one of gatering all the lines in a text field that 
contain a word or words and displaying them in a second field. The text might 
also include quotes and that messes up the wordOffset function. 

Turns out the tokens don't work since the period is not a token so the token 1 
of  "time." is time.

Astonishingly, it turns out that LC all allows for 

    Put "time" is among the tokens of "Now is the time, for all good men."

That returns true.

But

     Put "men" is among the tokens of "Now is the time, for all good men."

returns false--because of the period after "men"

I think I'll just strip the lead and trailing characters from the resulting 
wordOffset word, using something like:

function stripEnds tWord
   repeat 
      if charIsNotLetter (char 1 of tWord) then
         delete char 1 of tWord
         next repeat
      else
         exit repeat
      end if
   end repeat
   repeat
      if charIsNotLetter (char -1 of tWord) then
         delete char -1 of tWord
         next repeat
      else
         exit repeat
      end if
   end repeat
   return tWord
end stripEnds

function charIsNotLetter tChar
   put charToNum(tChar) into tNum
   switch
      case tNum >= charToNum("a") and tNum <= charToNum("z") 
         return false
         break
      case tNum >= charToNum("A") and tNum <= charToNum("Z") 
         return false
         break
      default
         return true
   end switch
end charIsNotLetter 

But I would prefer RR to implement your suggestion of augmenting  the 
delimiters for "word" to include all non-letters.
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to