Cita:
Iniciado por MaxExtreme Acabas de encontrar otra limitación (más aún) a VB: No puede declarar vectores mayores de 2500 para tipos String. ;)
Perdon? Cualquier dato estatico de una estructura definida por el usuario tiene una capacidad maxima de 64kb. Un array estatico de 2500 strings dentro de una estructura no llega ni por asomo a esa cantidad de memoria:
Código:
Private Type ZIPnames
s(0 To 16377) As String
End Type
Este valor es el maximo que permitira dicho elemento dentro de una estructura de datos. Ahora, si el array fuese dinamico:
Código:
Private Type ZIPnames
s() As String
End Type
Dim a As ZIPnames
Private Sub Form_Load()
Redim a.s(999999) As String
End Sub
Si el array fuese dinamico tendrias como capacidad maxima todo lo que diese de si la memoria de tu sistema. (si alguien prueba el ejemplo que no se asuste si tarda unos minutos en responder el programa, 999999 strings en un array es mucha memoria

)
jevalenzuela, la solucion que yo utilizo en casos como el tuyo es la de hacer dicho elemento dinamico en vez de estatico. En este caso se trata de un listado de archivos. Si la mayoria de las veces solo fueras a listar un total de 35 archivos, para que malgastar memoria a lo tonto alojando 2965 elementos vacios en el array? Definelo dinamicamente y añade elementos segun archivos vayas leyendo:
Código:
Redim Preserve a.s(Ubound(a.s) + 1) As String
Esto añadiria un elemento mas al array sin perder los datos del resto de los elementos existentes.
Salu2...