
Matriz dinamica
Publicado por Josetxu (75 intervenciones) el 18/11/2002 12:42:04
Hola a todos/as:
Necesito meter en una matriz dinámica de tipo string una serie de datos de un archivo.
No sé de antemano cuantos registros voy a meter en la matriz, por eso tengo que usar una matriz dinámica.
Entonces hago lo siguiente:
Option Explicit
Option Base 1
Dim DichosaMatriz() As String
La declaro arriba del todo pues voy a usarla en varios procedimientos del Form.
Llegado el momento de meter los datos hago lo siguiente:
i = 1
Do While Not EOF (1)
...
Get #1, i, LeeReg 'LeeReg es una variable de registro
DichosaMatriz(i) = LeeReg.Apellido 'El .Apellido es un campo tipo String del registro
i = i + 1
...
Loop
Entonces, cuando i todavía vale 1 me saca un error que dice:
Run-time error "9":
Subscript out of range
Y por supuesto no mete ningún dato en la matriz.
Sin embargo cuando la declaro con longitud fija, por ejemplo:
Dim DichosaMatriz(50) As String
Entonces no me da ningún error y la matriz se inicializa correctamente (claro, siempre que el numero de registros no sobrepase esos 50 elementos)
QUÉ ES LO QUE HAGO MAL????????
Gracias
Josetxu
Necesito meter en una matriz dinámica de tipo string una serie de datos de un archivo.
No sé de antemano cuantos registros voy a meter en la matriz, por eso tengo que usar una matriz dinámica.
Entonces hago lo siguiente:
Option Explicit
Option Base 1
Dim DichosaMatriz() As String
La declaro arriba del todo pues voy a usarla en varios procedimientos del Form.
Llegado el momento de meter los datos hago lo siguiente:
i = 1
Do While Not EOF (1)
...
Get #1, i, LeeReg 'LeeReg es una variable de registro
DichosaMatriz(i) = LeeReg.Apellido 'El .Apellido es un campo tipo String del registro
i = i + 1
...
Loop
Entonces, cuando i todavía vale 1 me saca un error que dice:
Run-time error "9":
Subscript out of range
Y por supuesto no mete ningún dato en la matriz.
Sin embargo cuando la declaro con longitud fija, por ejemplo:
Dim DichosaMatriz(50) As String
Entonces no me da ningún error y la matriz se inicializa correctamente (claro, siempre que el numero de registros no sobrepase esos 50 elementos)
QUÉ ES LO QUE HAGO MAL????????
Gracias
Josetxu
Valora esta pregunta


0