Get a handler from a script

Jim Ault JimAultWins at yahoo.com
Fri Mar 17 00:37:32 EST 2006


Perhaps using 

set the wholematches to true
put lineOffset("on" && pHandlerName, pScript) into tStart
if tStart is 0 then put lineOffset("function" && pHandlerName, pScript) into
tStart
put (lineOffset("end" && pHandlerName, pScript) +1 into tEnd


answer tStart & cr & tEnd

Jim Ault
Las Vegas

On 3/16/06 7:04 PM, "Mark Smith" <mark at maseurope.net> wrote:

> The reason I think Roberts is more the ticket is that it deals with
> the case where you have a handler 'jumpHigh' as well as a handler
> 'jump' later in the script -- this means we need to check for the end
> of the handler name - which could be a space if there are parameters,
> or cr if not.
> 
> We can avoid checking that for the 'end' line by using the third
> parameter to lineOffset -- lines to skip, so a revised version might
> be:
> 
> function extractHandlerFromScript pScript,pHandlerName
>   put lineOffset("on" && pHandlerName & space, pScript) into tHandlerBegin
>   if tHandlerBegin is 0 then put lineOffset("on" && pHandlerName & cr,
> pScript) into tFooBar1
> -- this deals with either space or cr at the end of the handler name
> -- and we don't need to check for 'function' since it contains 'on'
> 
>   if tHandlerBegin is 0 then return empty
>   put lineOffset("end" && pHandlerName,pScript,tHandlerBegin) into tHandlerEnd
>   if pHandlerEnd is 0 then return empty 
>   return line tHandlerBegin to tHandlerEnd of pScript
> end extractHandlerFromScript
> 
> Cheers,
> 
> Mark
> 
> On 17 Mar 2006, at 02:48, Thomas McGrath III wrote:
> 
> Mark and Robert,
> 
> I needed to check for functions as well. So I adapted the script from
> Mark into this:
> 
> function getHandlers hName,tControl
>     put the script of card tControl into tScript
>     put tScript
>     get lineOffset("on " & hName,tScript)
>     if it = 0 then
>         get lineOffset("function " & hName,tScript)
>     end if
>     if it = 0 then return "not found"
>     put it into startLine
>     get lineOffset("end " & hName,tScript)
>     return line startLine to it of tScript
> end getHandlers
> 
> Thank you so much for your help,
> 
> Tom
> 
> 
> On Mar 16, 2006, at 9:16 PM, Mark Smith wrote:
> 
> Not tested, but something like this should work:
> 
> function getHandler hName,tControl
>   put the script of control tControl into tScript
>   get lineOffset("on " & hName,tScript)
>   if it = 0 then return "not found"
>   put it into startLine
>   get lineOffset("end " & hName,tScript)
>   return line startLine to it of tScript
> end getHandler
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution





More information about the Use-livecode mailing list