Foro de elhacker.net

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:

Código:
[Config]
Opcion1=1234
Opcion2=5678

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

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

Código:
-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:

  • Iterar las lineas del archivo de texto.
  • Comprobar si la linea actual contiene el caracter "=".
  • Partir la linea en un Array usando el caracter "=".
  • Deslizar el Array para eliminar el primer elemento que no nos interesa para nada.
  • Unir el Array para obtener los datos deseados (en la variable value)

Código
  1. // Implementaciones
  2. String.prototype.contains = function(str) {
  3.    return this.indexOf(str) > -1;
  4. };
  5. String.prototype.trim = function() {
  6.    return this.replace(/^\s+|\s+$/g, "");
  7. };
  8.  
  9. var str =
  10.    '[Sección]                   \n' +
  11.    'Variable1=Valor1            \n' +
  12.    'Variable2=Valor2=más=complejo ';
  13.  
  14. var lines = str.split('\n');
  15.  
  16. for(var i = 0;i < lines.length;i++){
  17.  
  18. if (lines[i].contains('=')) {
  19.  
  20.    var parts = lines[i].split('=');
  21.    parts.splice(0, 1);
  22.  
  23.    var value = parts.join('=').trim();
  24.    // hacer con value lo que plazca...
  25. }
  26.  
  27. }

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
  1. // 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
  1. // hacer con value lo que plazca...
por
Código
  1. 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
  1. function parseINI(iniStr){
  2.    var obj = { },
  3.        lineBreak = '\n', //Could be \r\n for Windows systems
  4.        currentSection;
  5.    iniStr.split(lineBreak).forEach(function(line){
  6.        var section = (/^\[(.*)\]/).exec(line);
  7.        if(section){
  8.            currentSection = section[1];
  9.            obj[currentSection] = { };
  10.        } else {
  11.            var equalPos = line.indexOf('=');
  12.            if(equalPos){
  13.                var key = line.substr(0, equalPos);
  14.                var value = line.substr(equalPos+1);
  15.                obj[currentSection][key] = value;
  16.            }
  17.        }
  18.    });
  19.    return obj;
  20. }

Y es muy sencillo:

Código
  1. var conf = parseINI(elArchivoAqui);
  2. //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.