Bueno, esta función la hice principalmente para poder crear una tabla en base a un query que realizan los exploradores web con el método POST (pero pueden usarla para lo que quieran modificandola a su antojo). Aca un ejemplo de uno de estos queries:
http://www.server.com/index.php?user=myusername&pass=mypassword&other=myother
La cadena a filtrar es la señalada en rojo y se obtiene con el url.parse del luasocket
Aca la función y la llamada:
Como ven nos genera (retorna, regresa) una tabla asociativa (hash table) que podemos consultar mediante los nombres de sus miembros.
Ojala les agrade y sirva
http://www.server.com/index.php?user=myusername&pass=mypassword&other=myother
La cadena a filtrar es la señalada en rojo y se obtiene con el url.parse del luasocket

Aca la función y la llamada:
function fexpose (t, d)
local tb = {};
for x, y in pairs(t) do
local nP = string.find(y, d, 1, true)
if nP then
tb[string.sub(y, 1, nP-1)] = string.sub(y, nP+1, -1)
end
end
return tb;
end
function FilterRequest(s, d)--Lo mismo que el DelimitedToTable pero con otro nombre y llamada a la segunda función
if not d or #d < 1 then return nil end
local tbl = {};
local sa = s;
local sD = "";
local nP = string.find(sa, d, 1, true)
while nP do
sD = string.sub(sa, 1, nP-1)
table.insert(tbl, #tbl+1, sD)
sa = string.sub(sa, nP+1, -1)
nP = string.find(sa, d, 1, true)
end
if sa ~= "" then table.insert(tbl, #tbl+1, sa) end
return fexpose(tbl, "=");
end
local ta = FilterRequest("user=myusername&pass=mypassword&other=myother", "&")
Dialog.Message("Usuario", ta.user)
Ojala les agrade y sirva