String.explode: Difference between revisions
Jump to navigation
Jump to search
(New useful function: Explode) |
m (→Code) |
||
| Line 16: | Line 16: | ||
==Code== | ==Code== | ||
<section name="Server- and/or clientside Script" class="both" show="true"> | |||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
function Explode(separator, ensemble, plain) | function Explode(separator, ensemble, plain) | ||
| Line 32: | Line 33: | ||
end | end | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</section> | |||
==Example== | ==Example== | ||
Revision as of 15:23, 13 May 2009
This function splits a string at a given separator and stores the pieces in a table. It's the complement of table.concat.
Syntax
table Explode( string separator, string ensemble, [ bool plain ] )
Required Arguments
- separator: The string, which the ensemble shall be split at.
- ensemble: The string to split.
Optional Arguments
- plain: When set to true the separator is taken as normal string. This is also the default. When set to false separator is taken as regular expression.
Returns
Returns a table containing the pieces of the split ensemble.
Code
Click to collapse [-]
Server- and/or clientside Scriptfunction Explode(separator, ensemble, plain)
if (#separator == 0) then return { ensemble } end
if (#ensemble == 0) then return {} end
if (plain == nil) then plain = true end
local position, pieces = 1, {}
for s, e in function() return ensemble:find(separator, position) end do
table.insert(pieces, ensemble:sub(position, s - 1))
position = e + 1
end
table.insert(pieces, ensemble:sub(position))
return pieces
end
Example
Click to collapse [-]
ServerThis example sends a welcome message to a player e.g. when joining a roleplay server.
-- get the root element
local _root = getRootElement()
-- define the onPlayerJoin handler function
function OnPlayerJoin()
-- get the player's name
local playername = getPlayerNametagText(source)
-- split the player's name to first and last name
playername = Explode(".", playername)
-- send a welcome message
outputChatBox("Welcome on our roleplay server, Mr./Mrs./Ms. "..playername[2]..".", source)
end
-- add the event handler
addEventHandler("onPlayerJoin", _root, OnPlayerJoin)
Author: NeonBlack