Programación General > Visual Basic 6.0 e inferiores
Matriz 2 Dimensiones
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
[#] Página Siguiente
Ir a la versión completa