Pues nada, aquí os dejo dos funciones que espero os sea de utilidad, y recordad: Cerrad las ventanas y abrid el código.
function System.listDirectoryExt(path, exts) --[[ 1.0.1 : 2010-06. By GorristeR. Under GPL3 License. Retorna una tabla con los ficheros encontrados con las extensiones especificadas, nil si no existe la ruta o hay error. Ejemplo: ficherosSonido = System.listDirectoryExt("./music", {"mp3", "ogg", "wma", "mid"}) --]] local result = nil local fileList = System.listDirectory(path) local n, j if fileList ~= nil then result = {} for n = 1, table.maxn(fileList) do for j = 1, table.maxn(exts) do if string.find(string.lower(fileList[n].name), string.lower("%."..exts[j].."$")) then table.insert(result, fileList[n]) end end end end return result end
function System.listDirectorySort(path, sortBy, desc, exts) --[[ 1.0.0 : 2010-06. By GorristeR. Under GPL3 License. Retorna una tabla con los ficheros encontrados en el orden indicado, puede usarse el parámetro "exts" para indicar extensiones, en cuyo caso se llama a la función listDirectoryExt() para leer los ficheros. Devuelve nil si no existe la ruta o hay error. Valores de sortBy: 0: SORT_NAME, 1: SORT_SIZE desc debe ser true si se quiere un orden descendente, y exts debe contener una tabla con extensiones si se quiere usar listDirectoryExt() en lugar de listDirectory() Ejemplos: -Listado de ficheros ordenados por nombre (orden por defecto): sortedFiles = System.listDirectorySort("./mypath") -Listado de ficheros por nombre en orden descendente: sortedFiles = System.listDirectorySort("./mypath", 0, true) -Listado de imágenes ordenadas por tamaño: sortedImages = System.listDirectorySort("./mypath", 1, false, {"jpg", "bmp", "gif", "png"}) --]] local result = nil if sortBy == nil then sortBy = 0 end --SORT_NAME if desc == nil then desc = false end --Acendent order if exts ~= nil then fileList = System.listDirectoryExt(path, exts) else fileList = System.listDirectory(path) end if fileList ~= nil then local function _sort(a, b) if sortBy == nil then sortBy = 0 end --SORT_NAME if sortBy == 0 then result = string.lower(a.name) < string.lower(b.name) --SORT_NAME elseif sortBy == 1 then result = a.size < b.size --SORT_SIZE end if desc then result = not result end return result end -- _sort table.sort(fileList, _sort) result = fileList end return result end
Sólo puntualizar una cosa, la función no ordena por fecha de archivo porque Homemister no lo implementó.
LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.
Una pregunta
¿La tabla que retorna es "fileList"?
Edito: ¿Que es eso de Cerrad las ventanas y abrid el código?
Es algo asi como ''Si al
Es algo asi como ''Si al sowftware libre y no al codigo cerrado de Windows, no? jaja eso entendi.. :S
eso sirve
PARA MOSTRAR EN PANTALLA LOS OBJETOS QUE ESTÉN EN UNA CARPETA ESPECIFICA????
EDITADO: Este post incumples las normas de Scenebeta. Porfavor Revise las normas de la comunidad. Gracias AORV
Esto devuelve una tabla con
Esto devuelve una tabla con los objetos encontrados, el mostrarlos ya es otra cosa. Hay que recorrer dicha tabla.
jej, estas que te sales con lua xD
Si kieres te paso la implementación básica de una función C "lua", y si gustas en hacer algo para luadev, no dudaré en ponerlo xD ( seee, menos curro pa miii ueee )
Nah, ta wapo el snippet.
Aki uno de fabricación casera:
function iif(a,b,c) if a then return b else return c end end
He aki el inline if, fácil de usar, y muchas veces me acorta el código de maneras increíbles, si se sabe usar xD.
Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es
Buen apaño casero :D y gran
Buen apaño casero :D y gran funcion el iif, una de las pocas cosas que me gusta del Visual Basic. XDDD
Sobre la función "basica" para hacer un C<->Lua, pues sí, pégala por aquí a ver, es un tema interesante que aún desconozco, igual sale algo para LuaDev.
De momento estoy mirando ls funciones del Lua mh7 y estoy buscando carencias para intentar hacerlas en Lua "puro", por ejemplo esta de tener un "filtro" a la hora de listar ficheros, más que nada por familiarizarme con el lenguaje, no es que vaya aquí a ponerme a desarrollar una librería a lo bestia, con lo que cuesta (qué te voy a contar yo a ti XDDD).
No sé si tu LuaDev los vas a implementar de cero usando C, o va a ser algo mixto (extendiendo mh7 estilo a lo que he hecho yo, y añadiendo aparte cosas en C). Yo cualquier cosa que haga está dispuesta para que la use quien quiera bajo GPL3.
Un saludo
LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.
De 0 !
Está de 0 man, de ahi que corra tanto ( aún no está fatigado xDD ).
Bueno aki va una función inexistente y no funcional, pero el esqueleto es correcto.
Mmm, puse lua_Number pq quería que tomara decimales y eso. (usando float hubiera sido lo mismo, pero prefiero mantenerlo puro xD).
(si me interesaran enteros, usando int sería igual de bien).
lua_gettop(L) -- número de argumentos de la función llamada.
luaL_checknumber(L, xx ) -- leer xx argumento como si fuera un number.
lua_pushnumber(L, xx ) -- insertar en la pila de resultados un numero.
return 1; -- 1 resultado. ( si tuviera mas resultados, pos aki se ponen mas xD ).
Aki te dejo mejor la referencia a la API de C, te servirá mejor que mis explicaciones... xD
http://www.lua.org/manual/5.1/es/
Weno, si tu licencia implica tener que hacer release del source, tendré que crear mis propias funciones, no quiero hacer release (al menos global), durante un tiempo, mientras cuaja luadev, no quiero que los demás luaplayers "adopten misteriosamente" la velocidad de luadev... (no se si me entenderás)
Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es
Gracias por el código, muy
Gracias por el código, muy explicativo.
Sobre la licencia, una pena, espero que más adelante te decidas a liberarlo, seguro que encuentras muchos colaboradores, algo así como está pasando con el HBL ahora mismo. Tu proyecto es muy amplio, no dudo de tu capacidad de hacerlo sólo, pero es por el tiempo, demasiadas cosas para uno sólo. Cuando ya tengas un buena base "beta" sólida sería una opción interesante hacerlo, verás cómo tienes éxito.
LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.