Anuncios Google

duda con lua dev

hola quisiera preguntarles como hago para listar un directorio por ejemplo seplugins

seria algo como esto

fl = files.list("ms0:/seplugins")

screen.print(10,10,fl)

o como???????'


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de asmb

hola de nuevo de nuevo tengo

hola de nuevo

de nuevo tengo otra pregunta  hay alguna otra forma de sacar la extencion de un archivo porque si uso esto ext = files.ext(fl[VM].name) sobre un archivo png ext devuelve png pero si uso un archivo html devuelve tml

Si te fijas en la

Si te fijas en la documentación, dice que files.ext lo que hace realmente es devolver las últimas 3 letras de la cadena de texto que le pases (si le paso la cadena "SceneBeta" me devolvería "eta", aunque no sea un archivo :P)

Contados son los archivos que tienen más de 3 letras en la extensión (html, jpeg) de tal manera que puedes hacer algo muy impráctico, pero funcional xD: if ext == "tml" then ext = "html" end

Imagen de Chimecho

o mejor...

Puedes usar esta función casera:

function files.ext(str)
	res = str:match(".*%.(.*)")
	if res then return res else return str end
end

saca lo que sea que esté después del último punto encontrado, ah, pero si no hay puntos, te devuleve el string completo.



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Imagen de asmb

o si ok si se me hace mas

o si ok si se me hace mas comoda y practica que la otra que me dijo rober

EDITADO: ahora tengo una duda cuando listo un directorio y tiene muchos archivos
solo muestra algunos y quisiera aserlo como en XMB Recovery que se
termina la lista y si hay mas archivos aprarecen debajo de los otros

otra pregunta como comparo 2 strings con if porque con esto no resulta

ext = files.ext(string1) -- esto el la extencion
os.message(ext) -- con esto compruebo que la detecte
if ext == "PBP" or "pbp" then -- aqui esta el problema si le paso un jpg lo detecta como pbp, si le paso un iso igual y no se que pueda ser


Editado: Crear hilos y comentarios duplicados incumple las Normas de la Comunidad, si necesita cambiar su comentario puede usar la opción de Editar. Antes de volver a postear por favor revise las Normas.| Rober Galarga

Imagen de Chimecho

cuidado con los valores booleanos!

fijate, que si haces:

if "pbp" then os.message("eh? que hago aki?") end

va a salir el mensaje, porque el string, existe

or es una operación lógica, si la primera condición es falsa (en tu caso, que jpg no es pbp), verifica el segundo, si es true o existe, la condición completa será verdadera.

Lo que tu debiste hacer es:

if ext == "PBP" or ext == "pbp" then

aunque hay una forma mas sencilla, puedes usar string.lower para pasar la cadena a minúsculas así:

if string.lower(ext) == "pbp" then

Con eso no importa si es "PBP", o "pbp", o "PbP" :D

 

Saludos!



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Imagen de asmb

muchas gracias chimecho me

muchas gracias chimecho me salvaste la vida acerca de string.lower lo use en la funcion que me pasaste

function files.ext(str)
    res = str:match(".*%.(.*)")
    if res then return string.lower(res) else return str end
end

Imagen de Chimecho

ok

eso también sirve :D

Imagen de asmb

oye Chimecho te queria

oye Chimecho te queria preguntar otra cosa hacerca del listado esque cuando lo listo aparecen todos y queria haber si me puedes explicar como hacer que aparescan los demas de uno en uno o todos da igual

PD. el listado se muestra hasta el item 23 y despues de eso ya no sale nada

este es el codigo

dofile("Funciones.lua")   
LightSkyBlue = color.new(135,206,250)
negro = color.new(0,0,0)
blanco = color.new(255,255,255)
red = color.new(255,0,0)
verde = color.new(0,128,0)
fl = files.list(files.nofile("ms0:/"));
user_name = ini.read("conf.ini","Datos","Nombre","user")
function listar()
x = 30
y = 25
page = 23
   for i=1, #fl do
      if VM == i then
         screen.print(x,y,fl[i].name,0.6,verde,blanco)		 
      else		 
         screen.print(x,y,fl[i].name,0.6,negro,0x0)
      end
      y = y + 10
   end
end
function tamaño(number)
return math.floor(number/1048576)
end
function pass()
user_pass = ini.read("conf.ini","Datos","pass","user")
pass2 = os.osk("contrasena","","100","5")
	if pass2 == user_pass then
		os.message("hola")
	else
		pass()
    end
end
function navegador()   
   if controls.press("down") and VM ~= #fl then
      VM = VM + 1
   elseif controls.press("down") and VM >= #fl then 
      VM = 1
   end
   if controls.press("right") and VM ~= #fl then
      VM = VM + 3
   elseif controls.press("right") and VM >= #fl then 
      VM = 1
   end
   if controls.press("up") and VM > 1 then  
      VM = VM - 1
   elseif  controls.press("up") and VM == 1 then 
      VM = #fl
   end
   if controls.press("left") and VM > 1 then  
      VM = VM - 3
   elseif  controls.press("left") and VM == 1 then 
      VM = #fl
   end
   if controls.press("cross") then
    if fl[VM].directory then
    fl = files.list(fl[VM].name);
    VM = 1
   else
    ext = files.ext(fl[VM].name)
    os.message("la extencion es "..ext)	
   end   
   end
   if controls.press("circle") then
   runFile(fl[VM].name)
    end
   if controls.press("triangle") then
    fl = files.list("ms0:/");
    VM = 1
   end
end
VM = 1
Locked = ini.read("conf.ini","Datos","Lock","false")
if Locked == "Yes" then
pass()
end
while true do      
   controls.read()
   if controls.press("r") then
   dofile("script.lua")   
   end
   if controls.press("l") then
   usb.on()
   end  
   navegador() 
   draw.gradrect(0,0,480,272,LightSkyBlue,LightSkyBlue,negro,LightSkyBlue)
   listar()
   screen.print(10,10,user_name,0.6,verde,blanco)
   screen.print(355,250,"Tamaño en Mb "..tamaño(fl[VM].size),0.6,verde,blanco)      
   screen.flip()   
end

Imagen de Chimecho

umm...

lo que necesitas es un scroller, y la base de eso es una variable, te explico:

Como verás, cada elemento tiene su posición en Y, pero para ver el resto, tenemos que hacer que este suba. Declara una variable "scroll = 0" y luego, en la posicion Y del print, pones que se sume o reste esa variable. Ahora, para hacer que suba o baje, bastará con modificar el valor de esa variable, así la lista, se mostrará con un desfase en Y.



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Imagen de asmb

a ok gracias ahorita lo

a ok gracias ahorita lo pruebo cuando medio termine  la version beta te lo puedo mandar para que lo pruebes??????

Imagen de asmb

otra pregunta mire el codigo

otra pregunta mire el codigo de un menu sin imagenes de cam-maker y use su codigo para mi proposito y quedo asi

LightSkyBlue = color.new(135,206,250)
negro = color.new(0,0,0)
blanco = color.new(255,255,255)
red = color.new(255,0,0)
verde = color.new(0,128,0)
fl = files.list("ms0:/psp");
function listar()
x = 30
y = 25
	for i=1, #fl do
		if VM == i then
			screen.print(x,y,fl[i].name,0.6,verde,blanco)
		else
			screen.print(x,y,fl[i].name,0.6,negro,0x0)
		end
		y = y + 10
	end
end
function navegador()   
   if controls.press("down") and VM ~= #fl then
      VM = VM + 1
   elseif controls.press("down") and VM >= #fl then 
      VM = 1
   end
   if controls.press("up") and VM > 1 then  
      VM = VM - 1
   elseif  controls.press("up") and VM == 1 then 
      VM = #fl
   end
   if controls.press("cross") then
		--aqui el tipo si es carpeta o archivo
   end
end
VM = 1
while true do
	controls.read()
	usb.on()
	if controls.press("r") then
	dofile("script.lua")
	end
	navegador() 
	draw.gradrect(0,0,480,272,LightSkyBlue,LightSkyBlue,negro,negro)
	listar()
	screen.flip()
end

ahora si me pueden desir como diferenciar carpetas de archivos por ejemplo Micarpeta o miplugin.px o mimp3.mp3 porfavor

 

P.D. El dofile es para editar sin tener que salir

Imagen de cam-maker

(:

me gusto la forma de como ocupaste mi tuto xD ni a mi se me habia ocurrido xD yo pense que nadie veia mis tutos, pero en fin a tu pregunta. En LuaDEV en la misma funcion con la que sacas el nombre de la archivo asi puedes saber si es carpeta o no, puedes ver la funcion aqui

"directory" (boolean) Indica si la entrada es un directorio o no.

un ejemplo:

fl = files.list("ms0:/seplugins")
 
if fl[1].directory then
   screen.print(10,10,"Carpeta")
else
   screen.print(10,10,"Archivo")
end

Saludos, cualquier duda pregunta y si me equivoque en algo me avisan ando mareado @_@ xD

PD: puse 1 en el indice de la tabla como ejemplo.


"Las cosas brillantes siempre salen de repente, como la geometría de una flor"


Imagen de asmb

gracias mañana si puedo y me

gracias mañana si puedo y me dejan jeje les pongo el codigo para que si pueden me ayuden a pulirlo

gracias por todo

Imagen de asmb

una duda quiero guardar el

una duda quiero guardar el ultimo archivo clickeado en un ini lo creo con ini.write y listo todo perfencto pero al leerlo con ultimo_click = ini.read("conf.ini","Datos","Ultimo","vsh.txt") por ejemplo pero en el ini esta game_categories.prx pero ini.read me devuelve vsh.txt siendo que si se encuentra el dato en el ini

Imagen de Chimecho

fallos

hay fallos en el módulo ini, no recuerdo si DeViaNTe ya lo corrigió, deja que se pase por el foro a ver que dice..

Ya está corregido ese error,

Ya está corregido ese error, Chime, el módulo ini ya funciona perfecto. Usen este eboot ;)

Imagen de asmb

gracias rober

gracias rober

Imagen de asmb

a ok gracias

a ok gracias

Imagen de DeViaNTe

...

fl = files.list("ms0:/seplugins");
 
for i=1, #fl do
  screen.print(10,10*i, fl[i].name );
end


Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es

Imagen de Chimecho

jajajajja

acabo de tener un deja vu de maestro corrigiendo a su alumno xD

Pues si, ya cuando me iba a acostar recordé que faltaba .name pero no me iba a levantar a corregir xD



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

fl =

 

fl = files.list("ms0:/seplugins")
 
for i=1, #fl do --recorre desde i que es 1 hasta el valor total de la tabla haciendo
 
	screen.print(10,10*i,fl) --impresion cada 10 pixeles en Y por eso 10*i que es el 					        
                                         --numero de articulo de la lista ue se esta imprimiendo en  
                                         --ese momento.
 
end

 

Imagen de Chimecho

:O

Genial, lo has explicado bien, pero hay un ligero error, aki:

screen.print(10,10*i,fl)

fl sigue siendo una tabla, para seleccionar un sólo elemento le falta el índice, así:

screen.print(10,10*i,fl[i]) -- con esto decimos el elemento i de la tabla fl

Saludos!



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Gracias Master!, se me paso

Gracias Master!, se me paso por la prisa. Ya me conoces.

Imagen de asmb

Gracias de nuevo a todos

Gracias de nuevo a todosSonrisa

 

EDITO: ahora como le puedo hacer para que los muestre y poder seleccionarlos esque tengo en mente hacer un instalador de plugins como el de moikop

Imagen de Chimecho

ah...

usa os.makenicehb(ruta) y sale un homebrew completo con el eboot mas el script, e incluso sale firmado!

Imagen de asmb

jajaja eso si me causo risa

jajaja eso si me causo risaRisaRisaRisaRisaRisaRisaRisaRisa

 

EDITO: bueno mejor olviden ese ultimo edito que ya me di una idea y perdonen si melosto mucho

Imagen de asmb

gracias ^_^

gracias ^_^

Imagen de cam-maker

a ver o.o

el file.list() devuelve una tabla es decir que tu variable fl es una tabla, la puedes imprimir con un bucle for, cualquier duda comenta :D


"Las cosas brillantes siempre salen de repente, como la geometría de una flor"


Imagen de asmb

disculpa

disculpa mi ignorancia pero me podria poner un ejemplo plissssssssss

alguien

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.