A veces no podemos estimar el tamaño de la matriz cuando la usamos, por lo que es fácil pensar en matrices dinámicas, es decir, cambiar dinámicamente el tamaño de la matriz durante el uso. Esto es fácil de implementar en VB. Usemos un ejemplo específico para explicarlo:
Definir una matriz dinámica en VB generalmente implica dos pasos:
(1) Utilice Dim, Private o Public para declarar una matriz sin subíndices en la capa de formulario o módulo estándar (los corchetes no se pueden omitir),
(2) Utilice la declaración ReDim para definir una matriz con subíndices en el proceso
La función de la declaración ReDim es volver a señalar el tamaño de la matriz. Asigna espacio de almacenamiento cuando el programa ejecuta la instrucción ReDim.
Formato: ReDim(nombre de la matriz)(subíndice)[Como(tipo)]
Función: cambiar el tamaño y el espacio de almacenamiento de la matriz dinámica.
ilustrar:
(1) El subíndice puede ser una constante o una variable con un valor definido.
(2) El significado de cada parámetro en la declaración es el mismo que el de la declaración que usa Dim para definir una matriz.
(3) La declaración ReDim solo se puede usar para matrices dinámicas. Puede cambiar el tamaño de cada dimensión, pero no el número de dimensiones.
(4) Cuando se compila el programa, todas las matrices en la declaración ReDim se declaran como matrices dinámicas. Cuando el programa se está ejecutando, cuando se ejecuta la instrucción ReDim, los nuevos límites superior e inferior se reasignan a la matriz, los valores de los elementos de la matriz se inicializarán, los valores de todos los elementos numéricos se establecerán en 0, y los elementos de la cadena se establecen en una cadena de caracteres vacía.
(5) La declaración ReDim puede definir una matriz de la misma manera que la declaración Dim. En el mismo programa, la declaración ReDim también se puede utilizar varias veces. Antes de usar la instrucción :ReDim para redefinir la matriz, puede usar la instrucción :Erase para eliminar la matriz original.
Ejemplo:
Dimaa()AsLong' define una matriz dinámica
Redimaa(10)'Ajustar el tamaño de los arreglos dinámicos
atenuar i como número entero
para i=1 a 10
aa(yo) = yo
próximo
Redim aa(5) 'Cambiar tamaño nuevamente
...Otras operaciones