Programación General > Visual Basic para principiantes

 Funcion para Saber si Un Arreglo Esta Vacio

(1/4) > >>

MArio85:
Hola, en mi programa utilizo varios arreglos dinamicos los cuales pueden o no ser utilizados por lo que requiero una funcion que me diga si esta vacio o no.
Por ejemplo mi codigo es asi:


--- Código: Text --- dim Arreglo() as String If "Condicion" then      redim preserve Arreglo(i)      i = i+1endif for i=0 to ubound(Arreglo)         "Sentencia"Next i  
Pero si el arreglo esta vacio es decir nunca se dimensiono me marca el error "Parametro Fuera del Intervalo", He estado utilizando variables bandera para verificar si esta vacio o no, pero supongo que ha de haber una funcion que lo haga.

Gracias

m0skit0:
La función es UBound(). Míratela en la ayuda de VB6.

cpmario:
Si el arreglo está vacío la función Ubound también marcará un error.
Debes basarte en la otra variable (la que suma) la i

Por ejemplo:

--- Código: Text ---If i = 0 then     'El arreglo está vacíoEndif  
La alternativa es manejar el error que aparece cuando el arreglo está vacío con On Error

 :comp:

m0skit0:
Ups, perdón, no había caído en que usabas UBound ya. Jejejejeje, es que el madrugar me deja atontado. -_-


--- Cita de: "cpmario" ---Debes basarte en la otra variable (la que suma) la i
--- Fin de la cita ---


O cpmario es un genio, o yo soy tonto, o esto está mal. Lo que sí puedes usar es el On Error como bien te comenta cpmario. Otra solución sería rellenar los vectores con un mínimo de 1 elemento en el índice 0, así UBound() no te devuelve error. También puedes declarar un registro con el vector y una variable que lleve la cuenta del número de elementos:


--- Código: Text --- public type tArreglo     Arreglo() as Tipo1     NElementos as Integerend type  
Cada vez que pongas un elemento en Arreglo, sumas uno a NElementos.

Salud y república

Nebire:

--- Cita de: "m0skit0" ---
--- Cita de: "cpmario" ---Debes basarte en la otra variable (la que suma) la i
--- Fin de la cita ---



--- Código: Text --- public type tArreglo     Arreglo() as Tipo1     NElementos as Integerend type  
Cada vez que pongas un elemento en Arreglo, sumas uno a NElementos.

Salud y república
--- Fin de la cita ---

Esto es una tontería la función Ubound() es perfecta y lo es por si misma, tampoco hace falta otro contador posterior sino en todo caso anterior que a la vez sirve para la verificación...


--- Código: Text ---   dim limite as integer      limite= ubound(Arreglo)   if limite <>-1 then        '  la matriz está dimensionada, tiene elementos...         redim preserve Arreglo(limite +1)  else     ' la matriz no está dimensionada  end if   

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa