Hi Jacque, Jacque wrote:
> put the styledText of fld 1 into tDataA > put 0 into tTotalChars > put 0 into tStartChar >repeat with i = 1 to the number of elements in tDataA >put tDataA[i]["runs"] into tRunsA >repeat with j = 1 to the number of elements in tRunsA > put tRunsA[j] into tRunA >add the num of chars in tRunA["text"] to tTotalChars > if tRunA["metadata"] is pTag then >if tStartChar = 0 then > put tTotalChars - len(tRunA["text"]) + 3 into tStartChar > end if >else if tStartChar > 0 then >put tTotalChars - len(tRunA["text"]) into tEndChar >select char tStartChar to tEndChar of fld 1 >select empty >set the backcolor of char tStartChar to tEndChar of fld 1 to "yellow" >return tStartChar & comma & tEndChar >end if >end repeat >end repeat the styledArray does not include the returns at the end of a line. You have to add them if you address chars/codeUnits of the whole text. Initializing tTotalChars with -1 lets you add 1 to tTotalChars in each iterations of the outer repeat loop. -1 because the first line is not has no preceding return. Also add 1 to calculate tStartChar otherwise you point to the last char of preceding run. put -1 into tTotalChars -- note -1 put 0 into tStartChar repeat with i = 1 to the number of elements in tDataA add 1 to tTotalChars -- account for returns put tDataA[i]["runs"] into tRunsA -- note add 1 put tTotalChars - len(tRunA["text"]) +1 into tStartChar -- mark char 1 of target Additionally in your implementation if the target run with the metadata you look for is the last run of the array nothing is returned. Kind regards Bernd _______________________________________________ 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