Propiedades y Métodos aplicables a array de objetos
Propiedades | |
bounds | Retorna una cadena, que informa sobre el tipo de clase |
count | Devuelve el numero de elementos que tiene el array |
data | Retorno el puntero del dato |
dim | Retorna el numero de dimensiones del arrray |
length | Igual que count |
max | Devuelve el mayor indice del array: array.max=array.count-1 |
type | Devuelve el tipo de dato. (ver: Constantes predefinidas de tipo de dato) |
Métodos | |
Clear | Limpia el array..Clear ( ) |
Remove | Borra uno o mas elementos del array.Remove ( Index As Integer [ , Length As Integer ] ) |
Resize | Cambia el tamaño del array disminuyendolo o expandiendolo
(solo es posible usarlo en array de una dimension).Resize ( Size As Integer ) |
add | Añada (o inserta en la posicion indicada) un nuevo elemento
nuevo..Add ( Value As Object [ , Index As Integer ] ) |
copy | Retorna la copia de parte del array
.Copy ( [ InicioIndice As Integer, Longitud As Integer ] ) As Object[] |
delete | Borrar parte del array, retornandolo.Delete ( InicioIndice As Integer [ , longitud As Integer ] ) As Object[] |
exist | Devuelve verdadero si existe la referencia al objeto dentro del
array.Exist ( Value As Object ) As Boolean |
existbyref | Al igual que el método exist, pero sin usar el metodo especial _compare |
extract | Igual que delete |
fill | Rellena un array con un objeto determinado.Fill ( Value As Object [ , Start As Integer, Length As Integer ] ) |
find | Busca un objeto dentro del array devolviendo la posicion donde
que ocupa. Si no lo encuentra devuelve -1. Se puede indicar una
posicion de inicio de la busqueda..Find ( Value As Object [ , Start As Integer ] ) As Integer |
findbyref | Al igual que find, pero sin usar el metodo especial _compare |
insert | Inserta un array de objetos dentro del mismo array, se puede
especificar una posicion, sino, lo hará al final del array..Insert ( Array As Object[] [ , Pos As Integer ] ) As Object[] |
pop | Borra el último elemento del array, retornandolo..Pop ( ) As Object |
push | Añade un array al final del array (es una simplificacion del
método .add).Push ( Value As Object ) |
reverse | Invierte el orden del array de elementos y los devuelve.Reverse ( ) As Object[] |
sort | Ordena el array Ascententemente (gb.ascent)
o descendentemente (gb.descent) Para ordenalo usa el método especial _compare .Sort ( [ Mode As Integer ] ) As Object[] |
Para más información:
Arrays tipo Variant[]: http://gambaswiki.org/wiki/comp/gb/variant[]?l=es
Arrays tipo cadena de caracteres[]: http://gambaswiki.org/wiki/comp/gb/string[]?l=es
Arrays tipo numero integer[]: http://gambaswiki.org/wiki/comp/gb/integer[]?l=es
Arrays tipo fecha[]: http://gambaswiki.org/wiki/comp/gb/date[]?l=es
Arrays tipo numero float[]: http://gambaswiki.org/wiki/comp/gb/float[]?l=es
A continuación pongo un ejemplo, de como usar el método sort en un array de de objetos.
Tenemos una clase llamada ClassPersona, en ella tenemos dos propieades (nombre y edad). Queremos que los array que de esta clase se ordene por el nombre (en la documentacion de gambaWiki, viene ordenado por la edad (vease este enlace).
Este seria el código de la clase ClassPersona:
'
Gambas class file
Property
edad As
Integer
Private
hedad As
Integer
Property
nombre As
String
Private
hnombre As
String
Private
Function
nombre_Read() As
String
Return
hnombre
End
Private
Sub
nombre_Write(Value As
String)
hnombre =
Value
End
Private
Function
edad_Read() As
Integer
Return
hedad
End
Private
Sub
edad_Write(Value As
Integer)
hedad =
value
End
Public
Function
_compare(Other As
ClassPersona) As
Integer
'
Return Sgn(hedad - Other.edad)
If
hnombre > Other.nombre
Then
Return
1
Return
-1
End
Nota:
Fijaos que el en método especial _compare, he puesto comentado como seria ordenando por la edad.
Ahora pasamos a crear el programa principal, donde creo el array de objetos (listaPersonas) y los voy a ordenar y mostrar de forma ascendiente y descendiente:
-->
Dim
a As
Integer
'contador
para el for...next
Dim
per As
New
ClassPersona 'objeto
que nos sirve para ir añadiendo valores al array
Dim
listaPersonas As
ClassPersona[] 'array
de objetos de la clase ClassPersona
per.edad
=
23
per.nombre
=
"Eva
Muñoz"
listaPersonas =
New
ClassPersona[]
listaPersonas.Add(per) 'añado nuevo elemento al array
per =
Null 'borro el objeto
per =
New
ClassPersona
per.edad
=
34
per.nombre
=
"Julio
Sanchez"
listaPersonas.Add(per) 'añado nuevo elemento al array
'ordeno....
listaPersonas =
listaPersonas.Sort(gb.Ascent)
'muestro
en la consola los valores de los objetos
Print
"Edad",
"Nombre
(ascendiente)"
For
a =
0
To
listaPersonas.Max
Print
listaPersonas[a].edad,
listaPersonas[a].nombre
Next
'ahora
los muestro de forma descendiente:
listaPersonas =
listaPersonas.Sort(gb.Descent)
'muestro
en la consola los valores de los objetos
Print
"Edad",
"Nombre
(descendiente)"
For
a =
0
To
listaPersonas.Max
Print
listaPersonas[a].edad,
listaPersonas[a].nombre
Enlace del ejemplo completo: codigo completo
No hay comentarios:
Publicar un comentario