Para que sirven las funciones

Aquí puedes preguntar o compartir tus dudas y conocimientos acerca del programa
Bueno la cuestion es que en el ejemplo de el Api de Dropbox de Ceone y Pabloko vi algunas funciones que me parecieron un poco extrañas ya que soy un novato todavia. :P y por mas que las lei no las puede entender...

Sera que me Pueden explicar.. como funcionan y que son..

Código: Seleccionar todo

function lua_dostring(sLua)
	local Return, Error = pcall(function(s)
	return loadstring(s)();
	end, sLua);
	return Return, Error;
end

Código: Seleccionar todo

function DelimitedStringToTable(DelimitedString, Delimiter)
	tbReturn = {};
	local strWorking;
	local nPos = nil;
	local strData;
	local nTableIndex = 1;
	local nDelimiterLength = String.Length(Delimiter);
	
	if(nDelimiterLength < 1)then
		tbReturn[nTableIndex] = DelimitedString;
		return tbReturn;
	end
	
	strWorking = DelimitedString;
	nPos = String.Find(strWorking,Delimiter);
	while(nPos ~= -1)do
		strData = String.Left(strWorking,nPos-1);
		tbReturn[nTableIndex] = strData;
		nTableIndex = nTableIndex + 1;
		local nLength = String.Length(strWorking);
		strWorking = String.Right(strWorking,nLength - (nPos + (nDelimiterLength-1)));
		nPos = String.Find(strWorking,Delimiter);
	end
	if(strWorking ~= "")then
		tbReturn[nTableIndex] = strWorking;
	end
	
	return tbReturn;
end

Código: Seleccionar todo

function DeleteItemsRepeat(strObject)
	local tLBOut = {};
	local nLBcnt = ListBox.GetCount(strObject);
	for x = 1,nLBcnt do
		local sLBText = ListBox.GetItemText(strObject, x);
		local sLBData = ListBox.GetItemData(strObject, x);
		tLBOut[sLBText] = {data=sLBData};	
	end
	ListBox.DeleteItem(strObject, LB_ALLITEMS);
	for i,v in pairs(tLBOut) do
		ListBox.AddItem(strObject, i, tLBOut[i]["data"]);
	end
end
lua_dostring = esta función es para ejecutar un script. sin mas ni mas...

Ejemplo:
Stringfeo = [[
function fea(Value)
    -- esta es una funcion fea
    a = 1
    b = a+a+a+1
    c = a+b+Value
    return c
end

result = fea(5);
Dialog.Message("", result);]]

lua_dostring(Stringfeo);

Si haces esto ejecutara el contenido del string y como resultado te
lanzara un Dialog.Message diciéndote el valor de retorno de la function fea :D

-------------------------------------------------------------------


DelimitedStringToTable = es para delimitar un string en formato tabla.

Ejemplo:
stringdemierda = "joder|mierda|de|string|infinito"

result = DelimitedStringToTable(stringdemierda, "|")
de este modo ahora result contiene una tabla con todo los elementos del string separados por "|".


-------------------------------------------------------------------

DeleteItemsRepeat = Para eliminar los items repetidos de un objeto de listbox. Esta funcion es de rafax asi que el sabe mas de ella que yo... pero basicamente es para eso.
ok gracias