Principales respuestas
Se puede redimensionar un array de dos dimensiones?

Pregunta
-
Respuestas
-
Hola Aldola, según tengo entendido lo podrías realizar con la instrucción ReDIM.
Ejemplo:
Si tu arreglo se llama arregloDatos, podrías escribir lo siguiente:
'supongamos que lo has inicializado de la siguiente manera
Dim arregloDatos(20,20) as Integer
'Ahora lo vamos a llevar a 20 filas y 40 columnas
ReDIM PRESERVE arregloDatos(20,40)
Ahora bien, ten mucho cuidado con agregar la palabra PRESERVE, porque de manera predeterminada (sin este modificador), el ReDIM redimensiona los arreglos y asigna los valores por defecto a cada uno de los elementos del mismo. En este ejemplo, si no usas PRESERVE, todos los elementos quedarían en 0 (cero). Lo que hace el modificador PRESERVE es mantener tus datos ya cargados y copiarlos en el nuevo arreglo (que llevará el mismo nombre que el anterior), salvo que hagas un ReDIM en menos, o sea, que achiques tu arreglo, en cuyo caso perderías tantas filas como la diferencia entre el tamaño original y el nuevo.
Por otra parte, estoy completamente de acuerdo con Leandro (que es el verdadero experto en esto) de usar Listas Genéricas en vez de arreglos.
Espero te sirva mi respuesta.
Saludos!
Gustavo Echenique Mir- Propuesto como respuesta Enrique M. MontejoModerator miércoles, 12 de enero de 2011 21:18
- Marcado como respuesta Eduardo PorteschellerModerator viernes, 14 de enero de 2011 12:58
Todas las respuestas
-
hola
no has evaluado reemplazar el array por colecciones algo mejores?
me refiero quizas a las listas genericas
si estas suando VS2005 o superior podrias hacerlo, es ams para lograr als dos dimensiones podrias crrar una lista dentro de otra
uan lista se declararia como ser
Dim lista As New List(Of String)
y esta no hace falta redimensioanr porque los items los agregas dinamicamente por medio del add
lista.Add("Andres")
lista.Add("Miguel")
para ahcer de dos dimensiones usarias
Dim lista As New List(Of List(Of String))
o sea una lista dentro de otra
creo que esta tecncia es mucho mejor que usar los array que simpre son tan complicados cuando necesitas variar su contenido
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
Hola Aldola, según tengo entendido lo podrías realizar con la instrucción ReDIM.
Ejemplo:
Si tu arreglo se llama arregloDatos, podrías escribir lo siguiente:
'supongamos que lo has inicializado de la siguiente manera
Dim arregloDatos(20,20) as Integer
'Ahora lo vamos a llevar a 20 filas y 40 columnas
ReDIM PRESERVE arregloDatos(20,40)
Ahora bien, ten mucho cuidado con agregar la palabra PRESERVE, porque de manera predeterminada (sin este modificador), el ReDIM redimensiona los arreglos y asigna los valores por defecto a cada uno de los elementos del mismo. En este ejemplo, si no usas PRESERVE, todos los elementos quedarían en 0 (cero). Lo que hace el modificador PRESERVE es mantener tus datos ya cargados y copiarlos en el nuevo arreglo (que llevará el mismo nombre que el anterior), salvo que hagas un ReDIM en menos, o sea, que achiques tu arreglo, en cuyo caso perderías tantas filas como la diferencia entre el tamaño original y el nuevo.
Por otra parte, estoy completamente de acuerdo con Leandro (que es el verdadero experto en esto) de usar Listas Genéricas en vez de arreglos.
Espero te sirva mi respuesta.
Saludos!
Gustavo Echenique Mir- Propuesto como respuesta Enrique M. MontejoModerator miércoles, 12 de enero de 2011 21:18
- Marcado como respuesta Eduardo PorteschellerModerator viernes, 14 de enero de 2011 12:58
-
Te recomiendo que utilices lo que dice Leandro. es bastante estable y facil.
O bien, puedes usar la lista con una clase que haga las veces de registro, para hacer mas clara la programacion
Jackson Rosado Developer c#, VFP, PL/SQL DBA - Oracle 10g -