Ver Mensaje Individual
  #13 (permalink)  
Antiguo 16/03/2006, 07:52
MaxExtreme
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 20 años
Puntos: 17
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.