Thanks for the reply guys, both Hermann and Mark, and Bernd who sent me materials offline. I'll
be going over these suggestions to see what works best. The file content can be very long
especially when separated into runs (more than 200,000 runs for an average file) so speed will
matter since this is headed for a mobile app.
I was surprised to see two things:
1. FormattedStyledText appears nowhere in the dictionary. I didn't know it
existed.
2. FormattedStyledText treats some punctuation as a new run, even if it has not changed text
style. For example, semi-colons are independent runs. Very odd.
I need to do some experimentation and timing tests, but thanks to all for the
responses.
On 2/17/20 6:25 PM, Mark Waddingham via use-livecode wrote:
There’s the formattedStyledText property which is like the formattedText but in
the form of a style array. If you sum the number of chars in each run up until
you find your tag, then you can should be able to use the formattedheight of
char 1 up to the summed index to get the vscroll you need.
Warmest Regards,
Mark.
Sent from my iPhone
On 17 Feb 2020, at 22:50, J. Landman Gay via use-livecode
<use-livecode@lists.runrev.com> wrote:
Thanks, I'll save that for someday. In this case though, the text is wrapped
and there are anchors scattered around inside paragraphs. Unless someone else
has an idea it looks like I'm going to have to extract lookup tables. That's
going to be quite a job.
On 2/17/20 3:59 PM, Richard Gaskin via use-livecode wrote:
J. Landman Gay wrote:
I'm still working on htmltext in a field. There are anchors that indicate
positions elsewhere in the file. A browser will automatically find and scroll
to the right place in the text. I need to reproduce that.
Is there a way to translate an anchor like "#12345" to the location in the
visible field text it links to?
I've thought of a couple of alternate ways to do it involving lookup files, but
it would be better to do a direct translation to avoid the extra overhead.
The closest I have doesn't account for softwraps, but FWIW:
function fwAnchorTagLine pFldObj, pTag
local tA
local tLastLine
local tNumRuns
put the styledText of pFldObj into tA
put item 2 of extents(tA) into tLastLine
repeat with i = 1 to tLastLine
put item 2 of extents(tA[i]["runs"]) into tNumRuns
repeat with j = 1 to tNumRuns
if pTag is in tA[i]["runs"][j]["style"]["linkText"] \
AND "link" is not in \
tA[i]["runs"][j]["style"]["textStyle"] then
return i
end if
end repeat
end repeat
end fwAnchorTagLine
--
Jacqueline Landman Gay | jac...@hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
_______________________________________________
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
_______________________________________________
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
--
Jacqueline Landman Gay | jac...@hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
_______________________________________________
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