Visual Basic para Aplicaciones - como se el ultimo indice de un array

Life is soft - evento anual de software empresarial
 
Vista:

como se el ultimo indice de un array

Publicado por José Pascual Gómez (1 intervención) el 05/05/2006 17:59:26
buen día haber estoy realizando un trabajo y quisiera saber como solucionar lo siguiente:

tengo un array llamado entidad el cual tiene n nombres o sea es de tipo string esto es lo que tengo:

Dim entidad() As String

entidad = Array( "CONTRATISTA", "EMPLEADOS", "EPS", "ARP")
i = 0
While entidad(i) <> ""
i = i + 1
Wend

el objetivo es despues de esto redefinir a entidad con indice maximo= i, pero el dilema es que cuando el while hace la comprobación i llega a 5 y produce un error como prodria solucionarlo sin darle indice a entidad en la parte superior o sea cuando lo defino.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como se el ultimo indice de un array

Publicado por Rodrigo (3 intervenciones) el 13/05/2006 04:20:28
podrias decir en que lenguaje es esto??
porque con VB puedes obtener el largo de un array con ubound(array)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como se el ultimo indice de un array

Publicado por Lander Cayetano (1 intervención) el 19/08/2008 19:55:04
Hola, si sabes el número de posiciones del array es mejor usar FOR ya que el pc ejecuta más rápido una for que una while.

Para tratar arrays en VB tienes varios comandos:
UBound(ARRAY) > Devuelve el número máximo de elementos
LBound(ARRAY) > El primer elemento del array, que no siempre es 0
ReDim Array([Nº ELEMENTOS]) > Redimensiona SIN PRESERVAR LOS DATOS el array.
ReDim Preserve Array([Nº ELEMENTOS]) > Igual que el anterior pero conserva los datos anteriores del array.

El comando ReDim Preserve no es muy recomendable llamarle muy a menudo, por ejemplo cada vez que vas a añadir una nueva posición a array porque según lo explica Microsoft en MSDN, primero selecciona la memoria del PC como otro array de X elementos y después copia los datos. Es un proceso lento.

Bueno José sabiendo esto y definiendo la variable i, puedes hacer bien tu trabajo.

Unos ejemplos:

Usando WHILE:
1
2
3
4
i = 0
While  i <= UBound(entidad)
     i = i + 1
Wend
=====================================

Usando DO:
1
2
3
4
5
i = 0
Do
     i = i + 1
Loop while i < UBound(en
tidad)
=====================================

Usando FOR:
1
2
3
4
For i = LBound(entidad) to Ubo
und(entidad)
 
Next i
=====================================

Espero que te sirva y un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar