como acceder a datos de una tabla con lua?

Aquí puedes preguntar o compartir tus dudas y conocimientos acerca del programa
Hola a los amsspecialist users
Tengo una duda, estoy tratando desde una supuesta tabla con fechas y estoy tratando de partir las fechas en dia, mes y año, pero no consigo convertir un dato que esta dentro de una tabla a string para poder dividir la fecha y meterla ya con todos los datos divididos, alguien me puede decir como acceder a una tabla con estos datos por favor?

El codigo es:

Código: Seleccionar todo

tb = {};--tabla para meter las fechas ya partidas
tabledate ={}--tabla con fechas
tabledate[1] ={"12-10-2022"}
tabledate[2] ={"07-22-2016"}
tabledate[3] ={"11-11-2025"}

function SplitDate (mydate)
	return string.match(mydate, "(%d+)-(%d+)-(%d+)")
end


for xnl, xnlData in pairs (tabledate) do
m, d, y = SplitDate (xnlData)--aqui es donde me esta dando error porque se esperaba un string y en lugar de esto detecta que es una tabla
Table.Insert(tb, xnl, {fulldata=xnlData, Day=d, Year=y, Month=m});
end

for x=1, #tb do
Dialog.TimedMessage("My Info", "Full date: "..tabledate.fulldata.."\r\nMonth= "..tabledate.Month.."\r\nDay= "..tabledate..Day.."\r\nYear= "..tabledate..Year, 3000, MB_ICONINFORMATION);
end
tb = ({});
tabledate = ({"12-10-2022", "07-22-2016", "11-11-2025"});


function SplitDate (mydate)
	return string.match(mydate, "(%d+)-(%d+)-(%d+)")
end

for _, Item in pairs(tabledate) do
    m, d, y = SplitDate(Item);    
    
   table.insert(tb, _, {fulldata=Item, Day=d, Year=y, Month=m});
end

for _=1, #tb do
    print(tb[_].fulldata.."\r\n"..tb[_].Month.."\r\n"..tb[_].Day.."\r\n"..tb[_].Year);
end
NicolasG escribió:
14 Abr 2022 13:05
tb = ({});
tabledate = ({"12-10-2022", "07-22-2016", "11-11-2025"});


function SplitDate (mydate)
	return string.match(mydate, "(%d+)-(%d+)-(%d+)")
end

for _, Item in pairs(tabledate) do
    m, d, y = SplitDate(Item);    
    
   table.insert(tb, _, {fulldata=Item, Day=d, Year=y, Month=m});
end

for _=1, #tb do
    print(tb[_].fulldata.."\r\n"..tb[_].Month.."\r\n"..tb[_].Day.."\r\n"..tb[_].Year);
end
Tengo dos preguntas, perdone mi ignorancia ya que estoy aprendiendo lua....

1) Porque hay que englobar con parentesis una tabla? que es lo que hace ese parentesis parece como si fuera meter una funcion dentro de otra no? Esta parte del código:

tb = ({});
tabledate = ({"12-10-2022", "07-22-2016", "11-11-2025"});


2) de esto:

tb = ({});
tabledate = ({"12-10-2022", "07-22-2016", "11-11-2025"});

Como lo recolectas de una tabla con su table insert y lo metes en esta parte entre parentesis?
3) No sabia que se podia usar el _ como una variable, tiene algun otro uso este simbolo?

Gracias por ayudarme, el guion funciona bien :=)
En este los paréntesis no son realmente necesarios, en algunos lenguajes son obligatorios o tienen algún motivo real para ser usados, en en este caso es mas costumbre mía que otra cosa. habría que ver que indica la wiki de Lua 5.1 sobre este tema... En cuanto a tu segunda pregunta, no la entendí...
NicolasG escribió:
15 Abr 2022 22:53
En este los paréntesis no son realmente necesarios, en algunos lenguajes son obligatorios o tienen algún motivo real para ser usados, en en este caso es mas costumbre mía que otra cosa. habría que ver que indica la wiki de Lua 5.1 sobre este tema... En cuanto a tu segunda pregunta, no la entendí...
Entendido
la segunda pregunta la formulé mal, me entendi mejor yo mismo XD
gracias por el dato!