Buenas, amigos... lo cierto es que ya ando MUY cansado con el tema de los ini's en LuaDev... no se si seré que lo hago mal o algo pero es que no me explico cual es el problema:
Yo tengo un .ini con lo siguiente:
user=David pass=admin theme=default
Y hago lo siguiente:
users = { first = { user = ini.read("RUTADELINI","user",1), pass = ini.read("RUTADELINI","pass",2), theme = ini.read("RUTADELINI","theme",3), }, } text = "admin"; while true do controls.read(); if controls.press("cross") then if text == users.first.pass then screen.print(20,20,"OK"); else screen.print(20,20,"NO"); end end screen.flip(); end
¡PERO NO FUNCIONA! Me indica SIEMPRE "NO"... y no lo entiendo, la verdad...
Pero lo más gracioso llega ahora, ya que si hago lo siguiente:
users = { first = { user = ini.read("RUTADELINI","user",1), pass = ini.read("RUTADELINI","pass",2), theme = ini.read("RUTADELINI","theme",3), }, } text = "admin"; while true do controls.read(); if controls.press("cross") then if text == "admin" then screen.print(20,20,"OK"); else screen.print(20,20,"NO"); end end screen.flip(); end
O incluso esto:
users = { first = { user = ini.read("RUTADELINI","user",1), pass = ini.read("RUTADELINI","pass",2), theme = ini.read("RUTADELINI","theme",3), }, } text = "admin"; correctText = "admin"; while true do controls.read(); if controls.press("cross") then if text == correctText then screen.print(20,20,"OK"); else screen.print(20,20,"NO"); end end screen.flip(); end
¡FUNCIONA! Y yo me pregunto: ¡¿cómo es eso posible?! ¡Si se supone que ese ini.read() te tiene que devolver el string "admin", y al compararlo debe ser correcto!
Por favor... aclaradme porque yo no soy capaz...
Un saludo.
¡RESOLUCIONADO MEDIANTE INI'S GRACIAS A CHIMECHO!:
El proceso es el siguiente:
Abrimos Notepad++ o derivados y abrimos el ini que queramos arreglar...
Pulsamos en Editar, y después en conversión de salto de linea...
Y pulsamos sobre "UNIX". ¡LISTO!
...
¿Podría ser en LuaHM7? Porque no tengo ni p*** idea de lo que hay arriba.
Explicación
Aún que tendría que estar redactando una noticia en NDS, voy a intentar ayudar por aquí:
Saludos y a ver si me expliqué bien...
Gracias.
Pero yo programo en LuaHM. ¿Y en pass = ini.read("RUTADELINI","pass", 2) te lee la línea 2 de tu ini?
Correcto
Si, lee la línea 2.
No lee la línea dos, es el
No lee la línea dos, es el valor por defecto si no encuentra la llave.
Por ejemplo, supongamos que tenemos esto:
temperatura=30
Aquí temperatura es la llave, y 30 es el valor. Pues si al leer la llave "temperatura" no la encuentra, devolverá el valor por defecto (en el caso de arriba el número 2).
Ups...
Y yo toda la vida pensando que leía la línea dos, porqué todos los codes que me encontré lo ponen por 1,2,3,4...
Lo siento por decir algo que no era así...
Saludos!
Vale.
Probaré con un io.open().
¿Que no entiendes del código
¿Que no entiendes del código de arriba?
Pues revisa la documentación
Pues revisa la documentación de Lua HM 7 y adapta el código.
En inglés.
¿Cómo lo traduzco? ¿Lo paso por un traductor de txts inexistentes o por arte de magia? --Sarcástico.
Pensaba que un chabal de 16
Pensaba que un chabal de 16 años ya sabría utilizar con cabeza el traductor de Google o el diccionario de español-inglés. Ha sido un malentendido.
Mmm.
El manual tiene más de 2200 caracteres. Y el traductor de google no es muy certero que digamos. ¿Y cómo sabes que tengo 16 años?
...
Por tu nick se puede deducir (David Madrid 16 años (Davidm16)).
No tiene por que
La M16 es un arma, en concreto un fusíl, no tiene porqué ser David Madrid 16 años...
Saludos!
Sabía que alguien se daría cuenta.
Eres el tío más listo que conozco. Yyyy no, no me define mi avatar. Me lo puse hace 2 años y porque me gustaba por aquel entonces. Ahora me decanto por la Stg44 Sturmgewehr, que aparte de ser alemana, es nazi y antigua, con un diseño de ametralladora ligera con un percutor duro pero de clase y una textura a hierro forjado arrovinao de óxido como las chapas de las alpargatas de mi abuelo. Ffff me ando por las ramas. Pero todavía me sigue gustando el M16. Muy bien por darte cuenta.
mundosupernova.mex.tl El universo del homebrew y PSP.
Tres proyectos en progreso...
...
Por algún tema del foro, dijo que es de la comunidad de Madrid (y creo que tambien menciono su edad) por.lo que lo deduje así. El fusil en el nick, es otra probabilidad, aunque dejemos que nos lo aclare él.
Edito: Creo que lo dijo cuando preguntaron si era viciosoWii trolleando por los foros
¡Sígueme en Twitter!
Por favor, señores.
Por Mensajes Privados. Que no tiene nada que ver con el foro y lo llenamos con muchos comentarios.
no, ambos son lenguaje lua,
no, ambos son lenguaje lua, basicamente solo cambian la forma de llamar a las funciones (y las funciones mismas)
solo renombra las funciones que hay en el codigo de luaDEV por su equivalente en luaHM
Mmm...
El problema es que HM no tiene lectura de inis como LuaDEV, o lo abres con un dofile si puedes o lo tratas con las librerias io y string
NekeOS, el nuevo shell para PSP
PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.
Sony Xperia Z1 Compact con Android 5.1.1
Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).
¡Eso, eso!
io.open(), lo que buscaba. io.open() es abrir un archivo de cualquier modo. Y a lo que voy: quiero escribir algo en una cierta línea al abrir un archivo y luego al iniciarlo que me lo lea. Algo de 'r+' o 'w' que no entiendo y cómo poner la línea pa' que escriba. Ah, y el buscador no es muy certero que digamos.
mundosupernova.mex.tl El universo del homebrew y PSP.
Tres proyectos en progreso...
Mmm
"módulo io" #1 respuesta: http://psp.scenebeta.com/node/86839. También tienes un bonito tutorial en la zona de tutoriales.
Sí.
Ya me leí ese tuto. Me va de perlas. ¡Pero cómo se hace para escribir en una cierta línea!
Mmm...
Pues para eso tienes que leerte el manual de lua básico: http://www.lua.org/manual/5.1/es/manual.html, y tienes dos opciones, o utilizas
files:lines()
(lo más fácil), o utilizas conjuntamente el módulo string yfiles:seek()
NekeOS, el nuevo shell para PSP
PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.
Sony Xperia Z1 Compact con Android 5.1.1
Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).
que raro, yo creia recordar
que raro, yo creia recordar que si habia un modulo para manejar inis, ya me falla la memoria XD, pero bueno, lo que quiero decir es que el lenguaje es el mismo, solo cambian los nombres de las funciones y las forma de llamarlas
Saludos¡¡
Mmm...
A lo mejor te confundiste con este http://psp.scenebeta.com/node/52157
puff
Bueno no se como sea en LUA, pero en C para comparar strings es STRCMP(string1,string2);
...
Como estoy aprendiendo Ob-C al principio pensé que era porque habia que utilizar alguna función como esa, tipo "isEqualTo" específica para strings, pero luego recordé que no es así, ya que en LuaDev es más sencillo, es con un simple "=="...
Aun así, ya lo he solucionado, gracias por tu interés.
No sé si sera...
...esto, pero, creo que te falta poner el ini.load(...) para que luego lo pueda leer, nosé si ya lo habías aclarado pero ese es mi punto de opinión :D
Salu2!
Mmm...
No, ya que funciona sin necesidad alguna de cargar en caché. Aún así, lo he probado como mencionas y sigue sin funcionar...
Entonces
Espera a que venga RG, el "siempre" sabe todo y soluciona dudas :D xD
Salu2!
NO!
Ya lo he solucionado... IO RULES! ;D
By jorge_97
mmm
Recuerdo que te lo solucioné en su momento y te funcionó... el CODE es correcto, pero el archivo también lo es??
Revísalo y me dices.
PD: Los INI funcionan a la perfección, es sin duda, una de las cosas más útiles de Luadev, una cosa es que no funcionen y otra que no sepan usarlos ¬¬
Un cordial saludo a todos
Dos años en SCENEBETA
Click aquí para ver la Entrada de Bitácora.
Ya, ya...
Si yo se como hacerlo todo, pero lo que no se es por qué no puedo comparar el string que se almacena con otra variable que contiene exáctamente el mismo string sin que te devuelva false, ya que imprime "NO", cuando debería imprimir "OK"... =/
Un saludo.
By jorge_97
Pues ya te dije... lo probaría... es decir te haría un script para que vieras que funciona pero es innecesario:
INI (Sin las comillas):
var=Hola Mundo
SCRIPT
var=ini.read("prueba.ini","var","")
var=tostring(var)
if var=="Hola Mundo" then os.message("Esto funciona") end
Dos años en SCENEBETA
Click aquí para ver la Entrada de Bitácora.
Un pequeño detalle: Es más
Un pequeño detalle:
Es más aconsejable poner
var = ini.read( "prueba.ini", "var", nil );
antes quevar = ini.read( "prueba.ini", "var", "" );
.Saludos.
By Jorge_97
...
Sigo viendolo igual ambos
Si pones un read y después un print de ese read y le pones NIL: Error
de mi forma no saltaría error
Un saludo
Dos años en SCENEBETA
Click aquí para ver la Entrada de Bitácora.
Hombre pues...
De mi forma recibirás un craso error cuando lo quieras imprimir y de esa manea sabrás que no se está leyendo lo que se tendría que leer. De tu manera se sustituiría una palabra por un hueco en blanco, lo cual puede ser dificil de detectar.
Saludos.
Pues en tu método entonces
Pues en tu método entonces sale sobrando el tostring... ya que devolverás un valor leído o una cadena vacía :P
XD
Y eso que decia que no me gustaban los ini, y da la casualidad que a me funcionan, jajajaja
Definitivamente, NO FUNCIONA
Definitivamente, NO FUNCIONA EL INI.READ EN LUADEV R0. He hecho TODAS las pruebas posibles y nada. Dove, mejor utiliza los IO.
Saludos
¿Como?
Los INIs en LuaDev funcionan perfectamente. Y son mucho más cómodos que los archivos de texto, los cuales son más propensos a producir errores.
Si no sabeís como funcionan, RG hizo un post muy bueno sobre su funcionamiento, hecharle un vistazo y comentad.
Saludos.
He dicho el ini.read(), a
He dicho el ini.read(), a parte he hecho todas las pruebas y No funcionan. Al menos, a mí no me funcionan. Por favor, pasame el link del post. Y aparte, a mí con los IO NUNCA me han dado error.
Saludos
Revisa el código de NextShell.
Si quieres ver ejemplos de como se utiliza correctamente la función ini.read() hechale un vistazo a mi HB NextShell (en cualquiera de sus versiones) y podrás comprobar por tí mismo que si funcionan.
Digo que los IO son más propensos a producir errores simplemente porque su uso es más complejo y es necesario cerrarlos despues de abrirlos.
Al fin y al cabo los INI son archivos de configuración creados especialmente para hacer más sencilla la tarea de administrar la configuración.
Eso es lo que a mi me parece… =/
Eso es lo que a mi me parece… =/
Me tendré que poner a aprender io después de todo...
¿Podríamos hablar por MP o por MSN, si no es molestia? :D
Mmm...
Pues a mi me funcionan con el eboot de GDP (Solo edite el nombre, la versión y las imagenes)
Estoy hablando de los INIs
Estoy hablando de los INIs
Mmm...
Me callo porque te iba a contestar una burrada... ains...
Y era a lo que me refería. A mi los archivos .ini me funcionan.
No venga dilo, quiero saber
No venga dilo, quiero saber la burrada xD
Y podrías ser un poco más explicito con lo de que te funciona el ini.read en Luadev y poner un código de ejemplo, por favor?
XD
Tu quieres que me reporten, no? jajajaja
Si me pusieron una palabra que no hace mal a nadie y que es una palabra como las demás, como una palabra inadecuada, a saber con lo otro...
Mira, este es el script de inicio de la antigua versión de NekeOS (seria la pre-release 3 o pre-release 4). Aquí utilizo el ini para leer el archivo de configuración:
NekeOS, el nuevo shell para PSP
PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.
Sony Xperia Z1 Compact con Android 5.1.1
Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).
Que raro, yo tengo el eboot
Que raro, yo tengo el eboot de GDP y no me va
Off-Topic: No quería que te reportasen, sino que YO te reportase jajajajaja... es broma