Cita:
Iniciado por [EX3] 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
Es él el que dice que no ha podido declararlo... Y lo de la memoria, no es seguro cuanto ocupa.
Cita:
Iniciado por [EX3] 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

)
No debería de tardar nada en iniciar el programa. 1 millón de strings, suponiendo que las usáramos para meter nombres de 20 letras, ocuparían 40 bytes, es decir, un total de 40MB de RAM.
El sistema devuelve esa memoria instantáneamente, tanto si son 40 MB, como si son 500 o más. Sólo se vuelve lento en el caso de que requiera usar el disco duro, pero creo que tienes más. No exageremos tanto con la memoria, que sobra.
Si se lentifica es problema de VB, no de la memoria.