Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 2 de 2
Ir a la página Anterior  1, 2
 
Lista,Variant
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Re: Lista,Variant 
 
Shell:

Citar:
es mas para insertar un array mas que un solo elemento.

Fijate la diferencia...:
- Si usas add() lo que haces es insertar la denominación interna de la variable (String[] 0xbfad38)
- Si usas insert(), lo que haces es insertar valor por valor lo que le pases, (si es un array de cadenas de caracteres (string[]), lo que le insertas es el valor de cada uno de ellos, uno por uno.

¿que utilidad tiene esto? ¿un ejemplo?
Ademas del ejemplo que ha puesto Shordi, nos puede valer para los juegos.
Imaginate un tablero de ajedrez, en una posicion determinada de las piezas en el tablero, para tener un listado de posibles movimientos, (y esos movimientos a su vez tienes varias coordenadas (posicion de salida y posicion de llegada)), se pueden organizar mediante estas listas que contienen a su vez listas.

En python se podria hacer asi:
def main():
    lista=[[[1,2],[1,3]],[[1,2],[1,-2]]]
    print lista[0]# movimiento 1º almacenado de la misma pieza
    print lista[1]# movimiento 2ºalmacenado de la misma pieza
    print lista[0][1] #coordenada 2º del movimiento 1º
    pass

if __name__ == '__main__':
    main()

 
En gambas seria asi:
dim p1a as integer[]=[1,2] 'posicion de partida
dim p1b as integer[]=[1,3]'posicion de llegada
dim mov1 as variant[]'contiene el 1º movimiento

dim p2a as integer[]=[1,2] 'posicion de partida
dim p2b as integer[]=[1,-2] 'posicion de llegada
dim mov2 as variant[]'contiene el 2º movimiento

dim lista as variant[]

mov1.add(p1a)
mov1.add(p2a)

mov2.add(p2a)
mov2.add(p2b)


lista.add(mov1)
lista.add(mov2)

lista[0][1] ' -> FIJAOS!!! esta forma es la misma que funciona con python!!!
 

La variable lista, contine los dos posibles movimiento. (es la forma que se me ha ocurrido de hacerlo), y la forma de extraer informacion es igual como se hace en python

Como se ve, en python, el codigo es mucho más simple, limpio y claro. (por lo menos al crear la lista) (extrer información es igual!!)


Nota:
Aunque el código de la lista que he creado en gambas, es largo y parece complicado, en el programa de damas inglesas que hice hace tiempo, use clases  para organizar este tipo de datos... algo que creo que quedaba menos claro y limpio (por ejemplo salian nombres larguisimos (ejemplo: jugada[0].movimiento[0].posicion[1]) para poder obtener los datos de las coordenadas, ahora simplemente se haria lista[0][1])

Citar:
Hay cosas que se podrían implementar, si tuviéramos la necesidad de hacerlo.

Pues si puede ser interesante...
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Lista,Variant 
 
Julio:

A ver si puedo mejorarlo en gambas y te cuestiono un poco el ejemplo.

Esto de no tener tiempo.  

Saludos.
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Viernes, 26 Abril 2013, 13:11; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Lista,Variant 
 
Bueno, he creado una función para "analizar listas" y crear la estrutura de datos variant[] (devuelve tipos de datos variant[] o tipo string), no devuelve otros tipos de datos (objetos, arrays de numeros).


En el ejemplo que os paso, analiza las siguientes listas:

  lista = "[1,2,3]"
  lista = "[1,2,[a,b],3]"
  lista = "[[a,b],1,2,3]"
  lista = "[[a,[b,c]],1,2,3]"
  lista = "[[a,[b,c]],1,[aa,[bb,cb]],3]"
  lista = "[[a,[b,c]],1,[aa,[bb,cb]],[[31,[332,333]],3]]"
  lista = "[[[1,2],[1,3]],[[1,2],[1,-2,[a,[b,c]]]]]"

 lista_e_indices

Utilizando esta funcion, el ejemplo que puse en el post anterior quedaria asi:
  Dim cadena As String
  Dim lista As Variant[]
  
  cadena = "[[[1,2],[1,3]],[[1,2],[1,-2]]]"
  
  lista = Analisis_Lista(cadena) 'crea la estrutura de la cadena, y se le asigna a "lista"
  
  Print mostrar(lista) 'muestra la estructura en consola
 
  

Nota:
La función la he probado con las listas anteriores  y funciona bien el análisis... pero es posible que con otras listas de problemas. Si es asi, me lo comentais, y reviso el código.

FuncionesListas-0.0.2.tar.gz
Descripción: Funcion Lista, que crea la estrutura de una lista como variant() .
Ademas tiene la funcion mostrar, que muestra los indices y contenido de la estructura de datos 

Descargar
Nombre del archivo: FuncionesListas-0.0.2.tar.gz
Tamaño: 6.86 KB
Descargado: 27 veces
FuncionesListas-0.0.2.tar.gz
Descripción: Funcion Lista, que crea la estrutura de una lista como variant() .
Ademas tiene la funcion mostrar, que muestra los indices y contenido de la estructura de datos 

Descargar
Nombre del archivo: FuncionesListas-0.0.2.tar.gz
Tamaño: 6.86 KB
Descargado: 27 veces
FuncionesListas-0.0.2.tar.gz
Descripción: Funcion Lista, que crea la estrutura de una lista como variant() .
Ademas tiene la funcion mostrar, que muestra los indices y contenido de la estructura de datos 

Descargar
Nombre del archivo: FuncionesListas-0.0.2.tar.gz
Tamaño: 6.86 KB
Descargado: 27 veces

 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Sabado, 27 Abril 2013, 13:02; editado 2 veces 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Lista De Reproducción hierro59 General 1 Sabado, 12 Octobre 2013, 04:27 Ver último mensaje
jousseph
No hay nuevos mensajes Lista De Errores De Gambas Shell General 2 Lunes, 13 Enero 2014, 20:23 Ver último mensaje
jsbsan
No hay nuevos mensajes El Poder De Una Subrutina Que Devuelve Var... v3ctor General 1 Jueves, 15 Diciembre 2016, 08:24 Ver último mensaje
jsbsan
No hay nuevos mensajes Variable Variant, Como Saber De Que Tipo Es tincho Aplicaciones/Fragmentos de Código 4 Lunes, 05 Noviembre 2018, 13:48 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 2 de 2
Ir a la página Anterior  1, 2

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron