explode.ls
-- Based on PHP's explode function. -- CBT: 2005-02-10
--
-- 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
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.
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