' Gambas class file
''Enlace a la documentacion oficial...http://gambasdoc.org/help/comp/gb/variant[]?es&v3
Public Sub _new()
End
Public Sub Form_Open()
Dim valor As Variant
'Creación de una lista en el momento de la definición
Dim semestre As Variant[] = ["enero", "febrero", "Marzo", "Abril", "Mayo", "junio"]
Dim notas As Variant[] = [5.4, 6.2, 3.3, 4.0, 8.3]
Dim lista As Variant[] = [123, 234, "hola"] 'lista con varios tipos de datos
Dim lista2 As Variant[]
'mostrando contenido de una lista
For Each valor In semestre
Print valor
Next
For Each valor In notas
Print valor
Next
For Each valor In lista
Print valor
Next
'Añadir elementos...
lista.Add("adios")
lista.Add(23.45)
Print "Añadiendo elementos.."
For Each valor In lista
Print valor
Next
'Acceso a los elementos:
Print "acceso al elemento nº 2 de la lista:"
Print lista[1] 'recordemos que los arrays siempre empiezan por el elmento 0
'Conocer el tamaño de la lista
Print "Numero de elementos:"
Print lista.Count
'Cambiar valores
lista[2] = "bye" 'cambio el valor
Print lista[2]
lista[1] += 1000 'añado al valor que tenia
Print lista[1]
'Eliminar un elemento..
Print "Borrado de elementos:"
lista.Delete(2) 'fijaros que se indica entre parentesis, ya que es un método
For Each valor In lista
Print valor
Next
'Borrado de varios elementos
lista.Delete(1, 2) 'borra desde el elmento 2, dos elementos más
Print "Borrado de varios elementos:"
For Each valor In lista
Print valor
Next
'Funcion pop(): extrae y borra el ultimo elemento
Print "Elemento que elimino:", lista.Pop()
For Each valor In lista
Print valor
Next
'Funcion pup(): añade un nuevo elemento al final de la lista...
lista.Push("hello!!")
For Each valor In lista
Print valor
Next
'Insertar listas en listas:
Print "Insertar una lista en otra lista..."
lista.Insert(semestre, 1) 'inserto una lista "semeste" en la posicion 2 de la lista
For Each valor In lista
Print valor
Next
'Invertir los elementos de la lista
Print "Creando lista invertida:"
lista2 = lista.Reverse()
For Each valor In lista2
Print valor
Next
'Método: Find: Buscar si existe un elemento en una lista,devolviendo el indice donde esta
Print "Buscando febrero en la lista:"
Print lista.Find("febrero") '"febrero" esta en la lista, devuelve el indice donde esta..
Print "buscando diciembre en la lista:"
Print lista.Find("diciembre") ' "diciembre" no esta en la lista, devuelve -1
'Método exist: indica si esta un elemento (True: para si esta, False: si no esta)
Print "¿esta mayo en la lista?", lista.Exist("Mayo")
' Los valores de una lista pueden ser también objetos e incluso otras listas (anidamiento).
lista.add(notas) 'añado la referencia de la variable notas
' (vease la diferencia con poner lista.insert(notas), que añade los elementos)
For Each valor In lista
Print valor
Next
'La lista anidada es una referencia, por lo que un cambio en la lista original afectará también a la referencia:
notas[1] = "muy buenas"
For Each valor In lista
Print valor
Next
Print Lista[8][1]
Acceso a un elemento dentro de unal lista anidada:
Print "Acceso al primer elemento dentro de una lista anidada: ", lista[8][0], lista[8][1]
'Borrado de varios elementos de una lista
lista.Remove(1, 3)
'Borra y devuelve varios elemento de una lsita
lista.Delete(1, 2)
'Copia desde el indice indicado (2) hasta el nº de elemntos (4)
Print "Lista2 copiada:"
lista2 = lista.Copy(2, 2)
For Each valor In lista2
Print valor
Next
'Rellena una lista con elementos
Print "Relleno lista...con el valor aa, desde el indice 0, 2 veces"
lista2.Fill("aa", 0, 2)
For Each valor In lista2
Print valor
Next
'Borrar una lista
lista.Clear()
End