Module:Utils: Difference between revisions
From Portals of Phereon Wiki
Content added Content deleted
(Created page with "local p = {}; function p.toTable(s,delimiter1,delimiter2) local result = {}; delimiter1 = delimiter1 or ','; delimiter2 = delimiter2 or '\\='; local ind = '';...") |
mNo edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
local p = {}; |
local p = {}; |
||
function p.toTable(s,delimiter1,delimiter2) |
function p.toTable(s,delimiter1,delimiter2,delimiter3) |
||
local result = {}; |
local result = {}; |
||
delimiter1 = delimiter1 or ','; |
delimiter1 = delimiter1 or ','; |
||
delimiter2 = delimiter2 or '\\='; |
delimiter2 = delimiter2 or '\\='; |
||
delimiter3 = delimiter3 or ';'; |
|||
local ind = ''; |
local ind = ''; |
||
for match1 in (s..delimiter1):gmatch("(.-)"..delimiter1) do |
for match1 in (s..delimiter1):gmatch("(.-)"..delimiter1) do |
||
Line 15: | Line 16: | ||
end |
end |
||
end |
end |
||
end |
|||
if (delimiter3 ~= '') then |
|||
for k,v in pairs(result) do |
|||
result[k] = string.gsub(v,delimiter3,','); |
|||
end |
|||
end |
end |
||
return result; |
return result; |
||
Line 23: | Line 29: | ||
delimiter1 = delimiter1 or '/'; |
delimiter1 = delimiter1 or '/'; |
||
for match1 in (s..delimiter1):gmatch("(.-)"..delimiter1) do |
for match1 in (s..delimiter1):gmatch("(.-)"..delimiter1) do |
||
result[#result+1] = match1; |
|||
end |
end |
||
return result; |
return result; |
||
Line 32: | Line 38: | ||
local rs = string.gsub(ls,"%]",''); |
local rs = string.gsub(ls,"%]",''); |
||
return rs; |
return rs; |
||
end |
|||
function p.toBoolean(s) |
|||
if (type(s)=="string" and s=="true") or (type(s)=="number" and s==1) then |
|||
return true; |
|||
else |
|||
return false; |
|||
end |
|||
end |
end |
||
Latest revision as of 09:56, 28 December 2021
Documentation for this module may be created at Module:Utils/doc
local p = {};
function p.toTable(s,delimiter1,delimiter2,delimiter3)
local result = {};
delimiter1 = delimiter1 or ',';
delimiter2 = delimiter2 or '\\=';
delimiter3 = delimiter3 or ';';
local ind = '';
for match1 in (s..delimiter1):gmatch("(.-)"..delimiter1) do
for match2 in (match1..delimiter2):gmatch("(.-)"..delimiter2) do
if ind == '' then
ind = match2;
else
result[ind] = match2;
ind = '';
end
end
end
if (delimiter3 ~= '') then
for k,v in pairs(result) do
result[k] = string.gsub(v,delimiter3,',');
end
end
return result;
end
function p.toNumberedTable(s, delimiter1)
local result = {};
delimiter1 = delimiter1 or '/';
for match1 in (s..delimiter1):gmatch("(.-)"..delimiter1) do
result[#result+1] = match1;
end
return result;
end
function p.trimBrackets(s)
local ls = string.gsub(s,"%[",'');
local rs = string.gsub(ls,"%]",'');
return rs;
end
function p.toBoolean(s)
if (type(s)=="string" and s=="true") or (type(s)=="number" and s==1) then
return true;
else
return false;
end
end
return p