Foros Néfele 4 Harbour › Foros › Dudas › No comprendo ejemplo
-
AutorEntradas
-
-
10-10-2020 a las 19:14 #1102
Alfredo SanzSuperadministradorHola Daniel.
Es un tipo de datos conocido como Hash.
Son muy parecidos a las matrices o arrays, pero con la peculiaridad de que puedes hacer referencia a los elementos, no por un número, sino por un nombre
Con arrays tendríamos esto:
aDatos := {}
aAdd( aDatos, Alfredo)
oCGI:Console( aDatos[1])
y nos mostraría Alfredo en el nefele console
Con Hasesh lo haríamos así
hDatos := {=>}
hDatos["nombre"] := "Alfredo"
oCGI:Console( hDatos["nombre"])
-
11-10-2020 a las 20:01 #1120
DanielParticipanteAlfredo,
Mucha gracias por tu ayuda, me quedó clarísimo.
Con respecto a la pretunta 2,
2) LOCAL aTodos := RecuperaBBDD()["Articulos"] <- ¿que función cumple ["Articulos"] luego de nombrar una función que por su definición no recibe parámetros?
Tu podrás explicarme o indicarme donde leer sobre esa sintaxis?
Desde ya muchas gracias
Saludos
-
12-10-2020 a las 13:52 #1129
Pedro AmaroSuperadministradorComo comento Fredy esto son Hash, que es una especie de Array en que cada elemento esta compuesto por un nombre y un valor.
Yo lo asemejo mucho a un JSon en memoria, de hecho Harbour tiene funciones para pasar de JSon a Hash y viceversa.
Si te fijas en el proyecto de ejemplo, hay una función CreaBBDD donde hay un JSon con la estructura y los datos de la BBDD que utiliza el ejemplo.
Este JSon tiene un primer nivel con tres elementos, Version, Familias y Articulos.
Version es una campo de tipo cadena
Familia es un campo de tipo Array
y Articulos es un campo de tipo Array
La función RecuperaBBDD() nos devolverá un Hash con todo el JSon, si le añadimos ["Familias"] se aplicará al resultado de RecuperaBBDD() y nos devolverá solo el Array de Familias.
Seria equivalente a
1234LOCAL aBBDD := RecuperaBBDD()LOCAL cVersion := aBBDD["Version"]LOCAL aFamlia := aBBDD["Familias"]LOCAL aArticulos := aBBDD["Articulos"]Como solo vamos a querer "Familias" pues lo simplificamos con
1LOCAL aFamilias := RecuperaBBDD()["Familias"] -
12-10-2020 a las 16:36 #1131
DanielParticipantexhermita,
Muchas gracias por tu explicación. Al no saber nada de Json se me hace medio difícil comprender, pero mas hayá de eso, lo que nunca había visto es esta forma de llamar una función RecuperaBBDD()["Familias"], hasta donde yo sabía los parámetros siempre se ponen dentro de los paréntesis.
Nuevamente gracias
Saludos
-
12-10-2020 a las 17:08 #1132
Pedro AmaroSuperadministradorEs que realmente ["Familia"] no es un parámetro que le paso a la función RecuperaBBDD, se aplica la resultado de la función
12LOCAL hTodo := RecuperaBBDD()LOCAL aFamila := aTodo["Familias"]Es lo mismo que
1LOCAL aFamilas := RecuperaBBDD()["Familias"]Los JSon son un formato de fichero que esta bastante estandarizado en el mundo web, yo no lo había utilizado mucho hasta que empezamos con Néfele, podríamos decir que equivale a un fichero XML pero es más sencillo de codificar.
-
12-10-2020 a las 18:43 #1134
DanielParticipantePerfecto, comprendí.
Muchas gracias por tu tiempo.
Saludos
-
-
-
-
AutorEntradas
- Debes estar registrado para responder a este debate.