elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Java Script] )(Split) Como obtener datos de un String como un config.ini
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Java Script] )(Split) Como obtener datos de un String como un config.ini  (Leído 2,483 veces)
Brian1511

Desconectado Desconectado

Mensajes: 267


¿Quien soy esa es la gran pregunta?


Ver Perfil WWW
[Java Script] )(Split) Como obtener datos de un String como un config.ini
« 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!


En línea



Creador de BrainMind
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.700



Ver Perfil
Re: [Java Script] )(Split) Como obtener datos de un String como un config.ini
« Respuesta #1 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


« Última modificación: 29 Julio 2015, 22:30 pm por Eleкtro » En línea


Brian1511

Desconectado Desconectado

Mensajes: 267


¿Quien soy esa es la gran pregunta?


Ver Perfil WWW
Re: [Java Script] )(Split) Como obtener datos de un String como un config.ini
« Respuesta #2 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
En línea



Creador de BrainMind
T. Collins

Desconectado Desconectado

Mensajes: 206


Ver Perfil
Re: [Java Script] )(Split) Como obtener datos de un String como un config.ini
« Respuesta #3 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
« Última modificación: 30 Julio 2015, 05:12 am por T. Collins » En línea

MinusFour
Moderador Global
***
Conectado Conectado

Mensajes: 5.286


I'm fourth.


Ver Perfil WWW
Re: [Java Script] )(Split) Como obtener datos de un String como un config.ini
« Respuesta #4 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.
En línea

Brian1511

Desconectado Desconectado

Mensajes: 267


¿Quien soy esa es la gran pregunta?


Ver Perfil WWW
Re: [Java Script] )(Split) Como obtener datos de un String como un config.ini
« Respuesta #5 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.
En línea



Creador de BrainMind
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines