Apúntate...


Consultas, desarrollo de programas y petición de presupuestos:

lunes, 27 de agosto de 2012

Arrays: Propiedades y Métodos

-->
Con el operador Punto “.”, tenemos las siguientes propiedades y métodos:

Propiedades


Bounds Devuelve el nombre de la clase virtual
Count Devuelve el numero de elementos del array
Data Devuelve el puntero del array
Dim Devuelve el numero de dimensiones del array
Length Igual que count
Max Devuelve el indice mayor del array, es el count-1
Type Devuelve el tipo de array (integer, float, etc).
Para más detalles: http://gambasdoc.org/help/cat/constant?v3






Métodos:

Clear Limpia el array, según el tipo, pone todos los valores a Cero o Null
Remove Borra uno o varios elementos del array
http://gambaswiki.org/wiki/comp/gb/array/remove
Resize Amplia o reduce el array. No se puede usar en array multi-dimensionales.
http://gambaswiki.org/wiki/comp/gb/array/resize

Más Métodos:

Add Añade un elemento al final o en una determinada posicion
http://gambaswiki.org/wiki/comp/gb/string[]/add
Copy Devuelve una copia del array entera o parcial, según se le indique
http://gambaswiki.org/wiki/comp/gb/string[]/copy
Delete Extrae elementos de un array,
http://gambaswiki.org/wiki/comp/gb/string[]/delete
Exist Devuelve si existe o no un elemento (verdadero a falso)
http://gambaswiki.org/wiki/comp/gb/string[]/exist
Extract Extrae elementos de un array,
http://gambaswiki.org/wiki/comp/gb/string[]/extract
Fill Rellena con un valor, el array, dandole el indice de inicio y el indice final
http://gambaswiki.org/wiki/comp/gb/string[]/fill
Find Devuelve el indice, donde se encuentre un valor
http://gambaswiki.org/wiki/comp/gb/string[]/find
Insert Inserta un array dentro de otro, en la posicion indicada.
http://gambaswiki.org/wiki/comp/gb/string[]/insert
Pop Borra el ultimo elemento y lo retorna
http://gambaswiki.org/wiki/comp/gb/string[]/pop
Push Añado al final de la lista un elemento
http://gambaswiki.org/wiki/comp/gb/string[]/push
Read Rellena la matriz tomando los datos directamente de un flujo.
http://gambaswiki.org/wiki/comp/gb/integer[]/read
Reverse Invierte el orden de los elementos de un array
http://gambaswiki.org/wiki/comp/gb/string[]/reverse
Sort Ordena los elementos de un array, ascendente o descendentemente
http://gambaswiki.org/wiki/comp/gb/string[]/sort
Write Escribe los contenidos de una matriz en un Flujo.
http://gambaswiki.org/wiki/comp/gb/integer[]/write




Enlace de descarga de ejemplo de métodos y propiedades: Enlace

-->
' Gambas module file

Public a As New Integer[7]
Public b As New Integer[7]

Public Sub Main()

a[0] = 1
a[1] = 2
a[2] = 5
a[3] = 9
a[4] = 10
a[5] = 8
a[6] = 7

'b.bounds = a.Bounds

Print a.Bounds

Print "count: "; a.Count
Print a.Data

Print a.Dim
Print "length: "; a.Length
Print "max: "; a.Max
Print "tipo: "; a.Type

'añadir el elemento "-1" en la posicion 3
a.Add(-1, 3)
escribe(a)
'copia parte del array "a" desde la posicion 3, y solo 4 elementos
b = a.Copy(3, 4)
escribe(b)
'Extrae parte del array "b" desde la posicion 1, y 2 elementos,
escribe(b.Delete(1, 2))
escribe(b)

'Exist:
Print "Existe el elemento -1: ", b.Exist(-1)
'Relleno: fill
Print "Relleno del array b, con 8"
b.Fill(21, 0, b.count)

escribe(b)

'Find: encuentra un valor dentro de un array, devolviendo el indice
Print "Posicion del indice: "; a.Find(9)


'inserto el array b en el a,en la posicion 4
Print "A:";
escribe(a)
Print "B:";
escribe(b)
a.Insert(b, 4)
Print "Escribo resultado:"
escribe(a)
Print "Usando Pop:"; a.Pop()
Print "Queda el array: ";
escribe(a)

Print "Usando Push,a añado al final de la lista el nº -33"
a.Push(-33)
Print "Queda el array: ";
escribe(a)

Print ""
Print "Devuelve un array invertido:"
b = a.Reverse()
escribe(b)
escribe(a)

Print ""
Print "Array ordenado (ascendentemente):"
a.Sort(gb.Ascent)
escribe(a)

End


Public Sub escribe(array As Integer[])

Dim acontador As Integer

Print "Array: ";
For acontador = 0 To array.Max
Print array[acontador]; " ";
Next
Print

End
Salida generada en la conosla:
(Integer[] 0x1b2b5d8)
count: 7
(Pointer 0x1b2b668)
1
length: 7
max: 6
tipo: 4
Array: 1 2 5 -1 9 10 8 7
Array: -1 9 10 8
Array: 9 10
Array: -1 8
Existe el elemento -1:  True
Relleno del array b, con 8
Array: 21 21
Posicion del indice: 4
A:Array: 1 2 5 -1 9 10 8 7
B:Array: 21 21
Escribo resultado:
Array: 1 2 5 -1 21 21 9 10 8 7
Usando Pop:7
Queda el array: Array: 1 2 5 -1 21 21 9 10 8
Usando Push,a añado al final de la lista el nº -33
Queda el array: Array: 1 2 5 -1 21 21 9 10 8 -33

Devuelve un array invertido:
Array: -33 8 10 9 21 21 -1 5 2 1
Array: -33 8 10 9 21 21 -1 5 2 1

Array ordenado (ascendentemente):
Array: -33 -1 1 2 5 8 9 10 21 21

Nota Importante:
Los arrays en gambas3 siempre se pasan por referencia a las funciones y subrutinas, con lo cual si cambiamos algo de ellos dentro de la función, modificaremos el original. Para que nos nos ocurra esto, hay que pasar una copia, y para ello se usa el método .copy del array.
Ejemplo:

mifuncion(miarray.copy())

Para más información:
http://www.gambas-es.org/viewtopic.php?f=1&t=2919 



Funciones Unir contenido del array: .Join()
Join en arrays de cadenas de caracteres (string[])
Esta funcion es muy util, hace lo contrario que la funcion Split, une un array, añadiendo un caracter separador que le indiquemos. 

Para mas información:
http://gambaswiki.org/wiki/comp/gb/string[]/join



Ejemplo:
-->
Dim cadena As New String[4]
Dim resultado As String
cadena[0] = "Hola"
cadena[1] = "esto"
cadena[2] = "es"
cadena[3] = "Gambas"
resultado = cadena.Join("|") 'uso como caracter serparador la barra vertical
Print resultado
Salida generada en la  consola:
Hola|esto|es|Gambas


No hay comentarios:

Publicar un comentario

A falta de donativos... un poco de publicidad