Programación General > Visual Basic para principiantes
Funcion para Saber si Un Arreglo Esta Vacio
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
[#] Página Siguiente
Ir a la versión completa