Explode
From Director Online Wiki
Based on PHP's [explode] function.
-- Examples:
--
-- put explode("your", "cleanyourhead")
-- -- ["clean", "head"]
--
-- put explode("r", "cleanyourhead")
-- -- ["cleanyou", "head"]
--
-- put explode("y", "cleanyourhead")
-- -- ["clean", "ourhead"]
--
on explode delimStr, str, limit
if (the paramCount = 0) then return "Usage:" &RETURN &"-- explode(delimStr, str, limit)"
if delimStr = "" then return FALSE
if NOT str contains delimStr then return [str]
set myArray = []
set delimOffset = offset(delimStr, str)
repeat while delimOffset > 0
if integerP(limit) then
if (count(myArray) < limit - 1) then
-- Issue when the delimiter is in the begin of the string
if delimOffset = 1 then
set myItem = ""
else
set myItem = char 1 to delimOffset - 1 of str
end if
--set myItem = char 1 to delimOffset - 1 of str
delete char 1 to delimOffset + length(delimStr) - 1 of str
add myArray, myItem
else exit repeat
else -- No limit, so just drive on.
-- Issue when the delimiter is in the begin of the string
if delimOffset = 1 then
set myItem = ""
else
set myItem = char 1 to delimOffset - 1 of str
end if
--set myItem = char 1 to delimOffset - 1 of str
delete char 1 to delimOffset + length(delimStr) - 1 of str
add myArray, myItem
end if
set delimOffset = offset(delimStr, str)
end repeat
if (length(str) > 0) then
add myArray, str
set str = ""
end if
return myArray
end
--[[User:Cole|CBT]] 13:18, 12 Oct 2005 (MDT)