Anuncios Google

[Problema con LuaDev] files.cdir(arg) no funciona

Buenas a todos a ver si alguien sabe resolverme esta duda.

Necesito cambiar la ruta de trabajo, pero files.cdir() no funciona.

Quizá me equivoque pero si yo tengo:

--Directorio ms0:/PSP/GAME/A/script.lua
 
files.cdir("ms0:/PSP/GAME/B")
dofile("script.lua")
 
--No me cambia el directorio a la carpeta B para cargar el archivo script.lua

 

Un saludo

 

Edito:

Definitivamente no me funciona. Aqui dejo el code para comprobar que no va:

a=timer.new()
a:start()
 
b=files.cdir()
while true do
    files.cdir("ms0:/PSP")
    if a:time()>5000 or b!=files.cdir() then break end
end
 
os.message(files.cdir())

Salta un mensaje con el dir del HB y no la carpeta PSP :/

Espero que Deviante pueda arreglarlo pronto ;)


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.


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.

Creo recordar esa función iba

Creo recordar esa función iba desaparecer... igual no hace falta (por lo menos no como lo estás usando).

Imagen de jorge_97

Bueno ya te digo yo que si me

Bueno ya te digo yo que si me hace falta.

Explico lo que quiero hacer con más detalle:

Quiero hacer un loader para ejecutar scrpits de Lua en Music Downloader, es decir entramos en Music Downloader, ponemos las descargas y como estas se realizan automaticamente desde la función screen.flip() pues se podrían hacer en cualquier HB.

Pero al ejecutar un script es necesario cambiar la carpeta de trabajo.

Y por lo tanto esa función si es necesaria.

Aunque estoy investigando otros métodos solo quería cerciorarme de que esa función estaba ahi de adorno.

Un saludo


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Igual para eso no es

Igual para eso no es necesario cambiar de directorio, lo que habría que hacer es modificar los scripts para que todo lo que carguen tenga la ruta completa (eso se puede hacer vía code de forma muy sencilla, por cierto).

Imagen de jorge_97

Sí, de hecho ese método y

Sí, de hecho ese método y copiar la carpeta del HB al directorio de trabajo son los que veo mejores.

Pero dime la solución del primer método tan sencilla es cambiar todas las funciones que requieran ruta?

Tales como image.load(), sound.load(), font.load(), ini.write(), ini.load(), io.open()... y una larguísima lista.

No lo veo tan sencillo. Cómo lo harías tu?

Salu2


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

No las funciones, sino sólo

No las funciones, sino sólo la ruta que usan. Primeramente sabes que tu HB está en "ms0:/PSP/GAME/XYZ", pues la guardas en una variable (ruta, por ejemplo). Ahora, el HB tiene un dofile por allí, algo como dofile("carpeta/loquesea.lua"). Resulta muy sencillo cambiar eso por dofile(ruta.."/carpeta/loquesea.lua") y listo (lo mismo para las otras funciones que usen rutas). Para la sustitución, string.sub seguro que funciona.

Lo más viable en este caso sería ir creando scripts secundarios conforme se vayan necesitando (reescribir el dofile quizá?), así no afectas a los originales (aunque si le agregas rutas absolutas a un HB debería seguir funcionando, sólo que no lo haría si el user instala o desinstala algo como game categories, o sencillamente cambia el HB de lugar).

Imagen de jorge_97

Sí, ya te he dicho que eso

Sí, ya te he dicho que eso más o menos sería lo que haría, en realidad solo es necesario añadir ms0:/PSP/GAME/ pero dado que se pueden dar muchas posibilidades, por ejemplo que la aplicación cargada sea un explorador y use sus rutas completas... en fin.

Solo queria comprobar si se podia hacer con files.cdir(), sería un buen aporte hacer operativa esa función, al menos en este caso ahorraría el trabajo un 99%.

EDITO: Y los HBs compilados??? Es imposible... la única manera es modificar todas las funciones o copiar el HB a ejecutar

EDITO2: He conseguido hacerlo funcionar copìando el HB completo... Ha sido fácil? No, no recordaba que files.copy() solo copiaba carpetas y subcarpetas no llegaba más lejos, asi que a hacer la función para copiar... Al menos lo he conseguido. Espero que Deviante si algún día saca otra versión corrija estos errores y no tengamos nosotros que hacer estos apaños :D

Un saludo Rober


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Jepte

otra cosa no faltara esto

otra cosa no faltara esto "/"  , files.cdir("ms0:/PSP/GAME/B/")

Imagen de jorge_97

Bueno perdón por tardar tanto

Bueno perdón por tardar tanto en responder pero con esto de las fiestas...

He probado esto:

files.cdir("ms0:/")
os.message(files.cdir())

En el os.message() me sale la carpeta donde tengo mi HB no la raíz. Por lo que el problema no es si el directorio existe o no o que falte "/"...

Será problema de Lua porque otra cosa...

A ver si alguien puede ayudarme y si no pues gracias a todos :D

Un saludo y feliz navidad


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Jepte

Pues si algo debe estar mal

Pues si algo debe estar mal con lua dev o ay algo que devian no nos an dicho.xd

Imagen de Jepte

estas seguro que no te cambia

estas seguro que no te cambia el directorio de trabajo?, puede ser que el problema esta en el archivo, para estar seguro ,  files.cdir("ms0:/PSP/GAME/B")  y  variable=files.cdir(), si te cambia el directori de trabajo el problema esta en el archivo,. xd

Imagen de Dioni0396

Lua dev lanzo esa actualizacion

que iba a incluir videos y demas, o eso ya ha quedado en el olvido?

Imagen de jorge_97

No aún no la ha sacado. No sé

No aún no la ha sacado. No sé si lo hará o no.

Por favor no desvirtues el tema Dioni ;)

Un saludo

Que versión

Que versión del intérprete estas usando? Puede que se trate de una version antigua, que no permite cambiar el directorio de trabajo.

 

Puedes probar una cosa, usar files.nodir() hasta estar en la ms0: y luego files.cdir("B"), haber si funciona...

 

Saludos!

Imagen de jorge_97

Uso la última versión. Ese

Uso la última versión.

Ese code que me has dado tampoco funciona...

Salu2 y gracias

Existe el directorio B?

Existe el directorio B? Otra cosa no se me ocurre...

 

Saludos!

Imagen de jorge_97

Si claro, existe :) Salu2

Si claro, existe :)

Salu2

Pues entonces ni idea de lo que pasa

Pues entonces ni idea de lo que pasa, prueba con files.exists() y mira si te devuelve true o false, yo decia si existía el directorio B por esto:

--Directorio ms0:/PSP/GAME/A/script.lua

Salu2!

PD: Prueba a poner / al final como te comento Jepte o intenta esto:

files.nofile()
files.cdir("B/")

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.