Line offset of an item (and other similar functions).

Alex Tweedly alex at tweedly.net
Tue Jan 25 08:14:13 CST 2005


Raymond E. Griffith wrote:

>
>Hmmm. Come to think of it, there should also be a "lineoffset" function.
>
> put lineoffset(pItem,pData) into ptestline
>
>No need for a "repeat for each line" construct, although you'd need to turn
>wholeMatches to false.  If you are concerned with making sure that you get
>an entire item and not a part of it, then you could do a test on it, as,
>
> repeat while ptestline > 0
>   if pItem is an item of line ptestline of pData then
>     return ptestline
>   else
>     put lineoffset(pItem,pData,ptestline) into ptestline
>   end if
> end repeat
>  
>
Yes, I tried that approach.
The full code fragment isn't quite that straightforward (need to add the 
offset each time round the loop):
  put lineOffset(pID, pData) into tLineCount
  repeat while tLineCount > 0
    if pID is among the items of line tLineCount of pData then
      exit repeat
    else
      put lineoffset(pID,pData,tLineCount) into t
      if t = 0 then
        put 0 into tLineCount
        exit repeat
      end if
      add t to tLineCount
    end if
  end repeat

and it also works. But this too is much less obvious, and long enough 
that it would need to be put into a separate function anyway.
It's on the list of alternatives to be benchmarked if performance is a 
problem.

Thanks
-- Alex.




-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 265.7.3 - Release Date: 24/01/2005



More information about the use-livecode mailing list