Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Harpo
(Junior Member)
**

Fecha de registro: 14-05-2021
Fecha de nacimiento: No especificado
Hora local: 20-06-2021 en 23:40
Estado: Sin conexión

Información sobre Harpo
Fecha de registro:
14-05-2021
Última visita:
14-06-2021, 22:21
Mensajes totales:
7 (0.19 mensajes por día | 0.3 % del total)
(Buscar sus mensajes)
Temas totales:
1 (0.03 temas por día | 0.22 % del total)
(Buscar sus temas)
Tiempo en línea:
3 Horas, 39 Minutos, 56 Segundos
Miembros recomendados:
0
Total Gracias Recibidos: 3 (0.08 al día | 2.26 porcentaje de 133 en total)
(Ver todos los temas Agradecido paraVer todos los posts Agradecido para) Total Gracias dados: 2 (0.05 al día | 1.5 porcentaje de 133 en total)
(Ver todos los temas Agradecido Ver todos los posts Agradecido)

Información adicional sobre Harpo
Lugar o País:
Madrid
Post más Agradecido de Harpo
Título del mensaje Fecha/Hora del mensaje Número de Gracias
RE: Alguien tiene hecho un "Settings" pero con JSONCollection? 14-05-2021, 09:26 2
Título del tema Nombre del Foro
Alguien tiene hecho un "Settings" pero con JSONCollection? Gambas
Aplicaciones/Fragmentos de Código
Mensaje
Saludos Tincho,

No sé si le servirá esto que subo. Es una prueba de concepto, yo uso un "Settings" en XML y estuve jugando con uno en JSON, está incompleto, solo realiza la lectura del fichero. A futuro quiero retomarlo, me pareció más sencillo que XML. He "limpiado" un poco el código para hacerlo más entendible.

La idea es tener dos ficheros de configuración, uno local y otro global. Permite parámetros de aplicación generales y particulares.
Lo que hay en el programa es:
  • Una clase PARAMETRO, básicamente contiene datos del parámetro: Scope (ámbito global o local), Sección (agrupo los parámetros), nombre, clave (código único de 4 dígitos), tipo (string - integer - ....) y el valor.
  • Una clase CONFIG, es una colección de parámetros y su gestión. Es quien hace la lectura de JSON. La Key del objeto "Collection" es la clave del parámetro.
  • Un módulo MODGEN. Es el arranque del programa, contiene la definición de constantes para "mapear" los códigos numéricos y hace una carga por defecto de la configuración.
  • Un formulario para visualizar parámetros y llamar a los procesos de carga. Estos procesos se llaman desde el evento "click" del combobox.
Además incluye los procesos de carga XML y los ficheros de configuración XML.

El formulario:

[Imagen: https://i.imgur.com/Z1RY9Ls.png]

El fichero JSON utilizado:
Código:
{"Global":
    {"ConfigJSON":[
        {"Database":[
            {"key":1000, "name": "DBType", "type": "string", "value": "sqlite3"},
            {"key":1001, "name": "DBCharset", "type": "string", "value": "UTF8"},
            {"key":1002, "name": "DBHostName", "type": "string", "value": "PruebaLocal"},
            {"key":1003, "name": "DBPort", "type": "integer", "value": "8000"},
            {"key":1004, "name": "DBDatabase", "type": "string", "value": "ConfigJSON.sqlite"},
            {"key":1005, "name": "DBUser", "type": "string", "value": null},
            {"key":1006, "name": "DBPassword", "type": "string", "value": null}
        ]},
        {"Mask":[
            {"key":1100, "name": "MaskDate", "type": "string", "value": "dd/mm/yyyy"},
            {"key":1101, "name": "MaskInteger", "type": "string", "value": "###0"},
            {"key":1102, "name": "MaskFloat", "type": "string", "value": "#,##0.00"},
            {"key":1103, "name": "MaskTime", "type": "string", "value": "hh:mm"},
            {"key":1104, "name": "ComaDecimal", "type": "string", "value": ","},
            {"key":1105, "name": "PuntoMiles", "type": "string", "value": "."},
            {"key":1106, "name": "Decimales", "type": "integer", "value": "-2"},
            {"key":1107, "name": "MaskMoney", "type": "string", "value": "$#,##0.00"}
        ]},
        {"Company":[
            {"key":9900, "name": "RazonSocial", "type": "string", "value": "Prueba S.L."},
            {"key":9901, "name": "CIF", "type": "string", "value": "B00000000"},
            {"key":9902, "name": "Direccion", "type": "string", "value": "Avenida de JSON 5"},
            {"key":9903, "name": "Poblacion", "type": "string", "value": "JSON de Abajo"},
            {"key":9904, "name": "CodigoPostal", "type": "string", "value": "99000"},
            {"key":9905, "name": "Provincia", "type": "string", "value": "Republica de JSON"},
            {"key":9906, "name": "Telefono", "type": "integer", "value": "999 999 999"},
            {"key":9907, "name": "Movil", "type": "string", "value": null},
            {"key":9950, "name": "Banco", "type": "string", "value": "El móvil es NULL"},
            {"key":9951, "name": "Oficina", "type": "string", "value": null},
            {"key":9952, "name": "Cuenta", "type": "string", "value": null},
            {"key":9953, "name": "SWIF", "type": "string", "value": null}
        ]}            
    ]}
}

Espero que le sirva.
Un saludo, Harpo.


[attachment=89]

Gracias recibidas y dadas por Harpo:
  Gracias Recibidas Gracias Dadas
La semana pasada 0 0
Último mes 2 2
Últimos 3 meses 3 2
Últimos 6 meses 3 2
Último año 3 2
En total 3 2
 
Más agradecido por
gambafeliz 1 33%
jguardon 1 33%
tincho 1 33%
 
Más agradecido
tincho 1 50%
Shordi 1 50%