Translate metadata to field content
J. Landman Gay
jacque at hyperactivesw.com
Fri Feb 21 13:14:48 EST 2020
Aha! Of course. I should have thought of that. Mark pointed out the same
thing. (And yes, my brief test had the metadata in the third paragraph.)
I'll try his handler when I get back to my Mac. If my guess is correct, the
search won't take any measurable time at all and the primary delay will be
loading the htmltext into a variable.
You guys are great.
--
Jacqueline Landman Gay | jacque at hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
On February 21, 2020 4:36:42 AM "Niggemann, Bernd via use-livecode"
<use-livecode at lists.runrev.com> wrote:
> 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 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