Programación General > Visual Basic 6.0 e inferiores

 Matriz 2 Dimensiones

(1/2) > >>

Dieguinho.:
Buenas, tengo el siguiente problema, espero me puedan ayudar.

tengo un codigo similar a la siguiente:
(el codigo este es solo para el ejemplo!)

--- Código: Text ---      Dim Matriz() As String     Dim x As Integer          For x = 0 To 10        ReDim Preserve Matriz(x, 1)                Matriz(x, 0) = "col1 " & x        Matriz(x, 1) = "col2 " & x              Next  
cuando redimensiona la primera vez no hay problema pero cuando hace la segunda vuelta me tira un error "subscript out of range".

alguien sabe por que???

yo necesitaria una matriz que contenga (suponiendo que se vean como filas y columnas) dos columnas y se vaya agregando una fila cada vez que pasa por el redim.

saludos!

Dieguinho.:
Si le saco el "preserve" funciona perfecto, pero obviamente no me guarda los valores que tenia antes.

firme:
cuando hice algo parecuido al tuyo tambien me salia error por q
ReDim Preserve Matriz(x, 1) estaba dentro del for pero cuando lo sacaba afuera del for si corria bien pero claro q yo ya sabia cuales eran las dimensiones al poner dentro del for se borran los datos ya corridos ala primera vuelta y es por eso q me salia un error bueno espero q te sirva de algo


Dim Matriz() As String

    Dim x As Integer
   
    For x = 0 To 10
       ReDim Preserve Matriz(x, 1)
       
       Matriz(x, 0) = "col1 " & x
       Matriz(x, 1) = "col2 " & x        

    Next

firme:
mira con tu codigo se borra los datos  supuestamente guardados en la matriz pero al poner asi como esta sale error pero al quitarle el "Preserve" si funciona pero tu problema seria q los datos se borran ya q al hacer un msgbox  ala matriz
MsgBox Matriz(6, 0) no sale por q se borraron los datos al redimensionar dentro del for
Dim Matriz() As String

Dim x As Integer

For x = 0 To 10
ReDim Preserve Matriz(x, 1)

Matriz(x, 0) = "col1 " & x
Matriz(x, 1) = "col2 " & x

----------------------------------------------------------------
provando pues creo q mejor seria q lo hicieras asi ya q los datos no se borrarian
Option Explicit
Dim Matriz() As String
Dim x As Integer

Private Sub Command1_Click()
ReDim Preserve Matriz(11, 1)
    For x = 0 To 10
       'ReDim Matriz(x, 1)
       Matriz(x, 0) = "col1 " & x
       Matriz(x, 1) = "col2 " & x
MsgBox Matriz(0, 0)
    Next
End Sub

espero q te sirva

Mollense:
Creo que ReDim Preserve solo permite cambiar el sub índice derecho.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa