dunbarx wrote:
The
lineOffset function only returns the first instance, so additional
processing is required to get all of them.
That's why the last parameter is important; it allows you to search for
an offset starting at a particular location. If you omit the last
parameter, the search always starts at 1.
So this:
get lineoffset(var,"ab")
will consistently return the first instance in the text variable. You
need to set up a "skip" parameter:
put 0 into skip
repeat
put lineoffset("ab",var,skip) into tResult
if tResult = 0 then exit repeat
put tResult & comma after tList
add tResult to skip -- start next search at last found location
end repeat
So, wow me with Rev's
arsenal. How to do it without a repeat loop? Find all "ab" in:
abc def abc
I want "1,3" back at me, or somesuch.
You need the repeat loop above, but it is extremely fast. You can
process many thousands of lines in under a second, usually. The above
gives you what you want, provided you are looking for the exact string
match for "ab". You could also get chunk info instead:
put fld 1 into var
put 0 into skip
repeat
put lineoffset("ab",var,skip) into tLine
if tLine = 0 then exit repeat
add tLine to skip
get matchChunk(line skip of var,"(ab)",tMatchStart,tMatchEnd)
put tMatchStart && tMatchEnd & cr after tList
end repeat
This gives the start and end position of the string you are searching
for, within the line you are looking at. So if you get "1 3" in the
match, then the chunk refered to would be "char 1 to 3 of line <skip> of
fld 1".
If you want a regex search instead of an exact match for "ab" then you'd
set up a filter first and then run a variation of the above repeat on
the results of your filtered text. Something like this:
put fld 1 into var
filter var with "a*b*"
repeat for each line tLine in var
get matchChunk(tLine,"(a
put tMatchStart && tMatchEnd & cr after tList
end repeat
Or you could use matchtext instead to extract the exact text.
--
Jacqueline Landman Gay | [EMAIL PROTECTED]
HyperActive Software | http://www.hyperactivesw.com
_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution