On 2023-07-26 18:02, Paul Dupuis via use-livecode wrote:
If I have some text in a field, I can use the "charIndex" property (see Dictionary) to obtain teh character position of the first character of a chunk.

Does anyone know of a clever way to do the equivalent of the charIndex for an arbitrary chunk expression for a container/variable (i.e. not an actual field object)?

This should work I think:

   function charIndexOfWord pWordIndex, pTarget
      delete word pWordIndex to -1 of pTarget
      return the number of characters in pTarget + 1
   end charIndexOfWord

Deletion of chunks works from the first char that makes up the computed range, so you are left with all the characters which sit before it.

The index of the character immediately before the start of the specified word is the just the number of characters which sit before it; and so the index of the first char of the specified word (which is what charIndex gives you in a field) is that +1.

The above should work for both +ve and -ve indices, and the obvious changes will make it work for other string chunks (i.e. change 'Word' for <chunk>).

Hope this helps!

Warmest Regards,

Mark.

--
Mark Waddingham ~ m...@livecode.com ~ http://www.livecode.com/
LiveCode: Build Amazing Things

_______________________________________________
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