Function to break apart a Long Name?
David Bovill
david at openpartenrship.net
Mon Oct 17 11:13:42 EDT 2005
A bit of a hack, but may help?
on deconstruct_Object someObject, @someControl, @cardObject, @stackName
-- <hack>
put extract_StackObject(someObject) into stackObject
put the last word of stackObject into stackName
delete char 1 of stackName
delete last char of stackName
-- put the short name of stackObject into stackName
-- </hack>
put "(^.*) of (card .*) of stack" && quote & "(.*)" & quote into
someReg
if matchtext(someObject, someReg, someControl, cardObject,
stackNameBit) is true then
return stackObject
else if word 1 of someObject is "stack" then
put "^stack" && quote & "(.*)" & quote into someReg
if matchText(someObject, someReg, stackNameBit) is true then
-- a stack
put empty into someObject
put empty into cardObject
return stackObject
else
return "Not a well formed MC object"
end if
else if word 1 of someObject is "card" then
put "(^card .*) of stack" && quote & "(.*)" & quote into someReg
if matchtext(someObject, someReg, cardObject, stackNameBit) is
true then
put empty into someObject
return stackObject
else
return "Not a well formed MC object"
end if
else -- it's a group not on a card
put "(^.*) of stack" && quote & "(.*)" & quote into someReg
if matchtext(someObject, someReg, someControl, stackNameBit) is
true then
put empty into cardObject
return stackObject
else
return "Not a well formed MC object"
end if
end if
end deconstruct_Object
function extract_StackObject someObject
if someObject is empty then put the long name of the target into
someObject
setOffsets_StackObject someObject, stackNameStart, stackNameEnd
return char stackNameStart to stackNameEnd of someObject into
longStackName
end extract_StackObject
on setOffsets_StackObject someObject, @stackNameStart, @stackNameEnd
-- hack assumes last char is quote
put the number of chars of someObject into stackNameEnd
put "stack" && quote into stackStart
put offset(stackStart, someObject) into stackNameStart
end setOffsets_StackObject
On 17 Oct 2005, at 17:00, David Burgun wrote:
> Hi,
>
> Does anyone know of a function that will extract name of the
> Control, Group, Card and Stack from a long name string?
>
> e.g. I have a string of the form:
>
> control "A" of group "B" of card "C" of stack "D"
>
> And I would like to have:
>
> local myControlName = A
> local myGroupName = B
> local myCardName = C
> local myStackName = D
>
> Any tips of how to write some code to do this would be greatly
> appreciated if there is not a standard function available.
>
> I haven't used the string function in RunRev much and I'm having
> difficulty in working out the best way to do this.
>
> Thanks a lot
> All the Best
> Dave
> _______________________________________________
> 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