Visual Basic - vector de 2 dimensiones

Life is soft - evento anual de software empresarial
 
Vista:

vector de 2 dimensiones

Publicado por aldo (16 intervenciones) el 31/07/2008 22:21:37
hola,

declare este vector

ReDim arr_grilla_ok(1 To 1, 1 To 6) As String

y al redimensionarlo me da error

a = a + 1
If a > 1 Then
ReDim Preserve arr_grilla_ok(1 To a, 1 To 6)
End If

el error que me sale es...

Subscript out of range

esta fuera de rango...

como lo puedo solucionar??
se puede hacer el redim preserve para el vector de dos dimensiones??

gracias por la ayuda,
Saludos
Aldo
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:vector de 2 dimensiones

Publicado por igor (633 intervenciones) el 31/07/2008 22:40:24
A ver si leemos la ayuda.

MSDN
Si utiliza la palabra clave Preserve sólo puede cambiar el tamaño de la última dimensión de la matriz y no es posible cambiar el número de dimensiones. Por ejemplo, si la matriz sólo tiene una dimensión, puede cambiar el tamaño de esa dimensión porque es la última y única dimensión. Sin embargo, si la matriz tiene dos o más dimensiones, sólo puede cambiar la dimensión de la última y todavía conservar el contenido de la matriz. El ejemplo siguiente muestra cómo puede aumentar el tamaño de la última dimensión de una matriz dinámica sin borrar ninguno de los datos existentes contenidos en la matriz.
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

Pues mira ...

Publicado por Yo (29 intervenciones) el 31/07/2008 22:43:39
(Aquí está lo que dice la MSDN respecto a lo que intentas hacer:)

Si utiliza la palabra clave Preserve sólo puede cambiar el tamaño de la última dimensión de la matriz y no es posible cambiar el número de dimensiones. Por ejemplo, si la matriz sólo tiene una dimensión, puede cambiar el tamaño de esa dimensión porque es la última y única dimensión. Sin embargo, si la matriz tiene dos o más dimensiones, sólo puede cambiar la dimensión de la última y todavía conservar el contenido de la matriz. El ejemplo siguiente muestra cómo puede aumentar el tamaño de la última dimensión de una matriz dinámica sin borrar ninguno de los datos existentes contenidos en la matriz.

ReDim X(10, 10, 10)
. . .
ReDim Preserve X(10, 10, 15)

De modo parecido, cuando utiliza el argumento Preserve puede cambiar el tamaño de la matriz sólo cambiando el límite superior; cambiar el límite inferior produce un error.

(Tal vez sea por eso)
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:Pues mira ...

Publicado por igor (633 intervenciones) el 31/07/2008 22:52:39
Pues eso, lo que yo le había puesto, no se por que te repites, pareces mi eco eco eco eco eco eco.
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:Pues mira ...

Publicado por igor (633 intervenciones) el 31/07/2008 23:09:29
Hombre muy bien. Me alegro que estés de acuerdo conmigo en que se trata de enseñar.

En alguna ocasión me dijeron que es mejor no dar explicaciones extensas, que se trata de dar el código para hacer copy/paste.

Si he puesto el MSDN es precisamente para "enseñarle" que existe una ayuda que DEBE utilizar, en vez de esperar a que le dén la solución.

Ya mañana te cuento que tal me ha ido con lolo. Quizás la semana que viene te apuntes tú también majetón.
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:Pues mira ...

Publicado por aldo (16 intervenciones) el 01/08/2008 14:06:36
yo, igor...

gracias por la ayuda y recomendacion de usar MSDN. Lo voy a hacer...
Les pido disculpas por la molestia ocasionada...

gracias y saludos,
Aldo
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