Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: Brian1511 en 29 Julio 2015, 21:32 PM

Título: [Java Script] )(Split) Como obtener datos de un String como un config.ini
Publicado por: Brian1511 en 29 Julio 2015, 21:32 PM
Hola amigos espero que me puedan ayudar con esta incognita que tengo ahora.

Quiero saber como con javascript puedo hacer un Split que me obtenga datos como los de un archivo INI que seria mas o menos haci:

[Config]
Opcion1=1234
Opcion2=5678

[Paths]
Path1=/juegos/
Path2=/musica/


Algo haci entonces quiero de este string obtener los valores ejemplo:


-1234
-5678

-/juegos/
-/musica/


Ya se como cargar el archivo solo quiero saber como obtener estos datos mediante splits?

Gracias y un saludo!
Título: Re: [Java Script] )(Split) Como obtener datos de un String como un config.ini
Publicado por: Eleкtro en 29 Julio 2015, 22:13 PM
Una manera de hacerlo sería la siguiente:


Código (javascript) [Seleccionar]
// Implementaciones
String.prototype.contains = function(str) {
   return this.indexOf(str) > -1;
};
String.prototype.trim = function() {
   return this.replace(/^\s+|\s+$/g, "");
};

var str =
   '[Sección]                   \n' +
   'Variable1=Valor1            \n' +
   'Variable2=Valor2=más=complejo ';

var lines = str.split('\n');

for(var i = 0;i < lines.length;i++){

if (lines[i].contains('=')) {

   var parts = lines[i].split('=');
   parts.splice(0, 1);

   var value = parts.join('=').trim();
   // hacer con value lo que plazca...
}

}


Saludos
Título: Re: [Java Script] )(Split) Como obtener datos de un String como un config.ini
Publicado por: Brian1511 en 30 Julio 2015, 03:24 AM
Gracias amigo en serio, pero una ultima preguntita y perdona mi ignorancia.
Como lo uso? es decir me escribiste que hiciera con value lo que quisera pero... Seria algo como
var Opcion1 = value[0] // El primer valore en el l
Título: Re: [Java Script] )(Split) Como obtener datos de un String como un config.ini
Publicado por: T. Collins en 30 Julio 2015, 04:24 AM
Es un bucle, por cada opción en el archivo el bucle pasa una vez por la línea:
Código (javascript) [Seleccionar]
// hacer con value lo que plazca...
y value contiene la opción correspondiente.

En el ejemplo de Elektro el bucle pasa 2 veces, la primera value = "valor1" y la segunda value = "Valor2=más=complejo"

Puedes cambiar
Código (javascript) [Seleccionar]
// hacer con value lo que plazca... por
Código (javascript) [Seleccionar]
miarray.push(value); y tendras todas las opciones guardadas es miarray
Título: Re: [Java Script] )(Split) Como obtener datos de un String como un config.ini
Publicado por: MinusFour en 31 Julio 2015, 18:39 PM
Código (javascript) [Seleccionar]
function parseINI(iniStr){
    var obj = { },
        lineBreak = '\n', //Could be \r\n for Windows systems
        currentSection;
    iniStr.split(lineBreak).forEach(function(line){
        var section = (/^\[(.*)\]/).exec(line);
        if(section){
            currentSection = section[1];
            obj[currentSection] = { };
        } else {
            var equalPos = line.indexOf('=');
            if(equalPos){
                var key = line.substr(0, equalPos);
                var value = line.substr(equalPos+1);
                obj[currentSection][key] = value;
            }
        }
    });
    return obj;
}


Y es muy sencillo:

Código (javascript) [Seleccionar]

var conf = parseINI(elArchivoAqui);
//conf.sección.variable <- Tiene la variable aqui.


Lo mejor sería que usaras JSON y simplemente usaras JSON.parse, asi puedes serializar estructuras de javascript.
Título: Re: [Java Script] )(Split) Como obtener datos de un String como un config.ini
Publicado por: Brian1511 en 4 Agosto 2015, 00:08 AM
Hola, wow bastantes respuestas muy buenas de parte de ustedes.
Muchas gracias, ahora mismo probare cada uno de los codigos.

PD: No uso JSON porque en si no es javascript es una app que usa javascript para crear modificaciones a un juego y tiene su propia API.