Bueno solo tengo esa duda, saber si los UDTs tienen un tamaño limite cuando son parte de un array.
ejemplo:
Código
Type tOnlineUserList
uNickName AsString
uLevel AsString
EndType
Dim UserList(30000) as tOnlineUserList ' Tienen limite?
En línea
Todo aquello que no se puede hacer, es lo que no intentamos hacer. Projecto Ani-Dimension Digital Duel Masters (Juego de cartas masivo multijugador online hecho en Visual Basic 6.0)
El limite lo determina la cantidad de espacio en memoria disponible... lo mas seguro es que si haces un array de una gran magnitud se te alentice la re-localizacion de la misma si es que se necesite, en un caso de dimenciones estaticas no, pero de que hay limite si hay limite.
Es muy posible que en una arquitectura de 32 bits no superes las 4294967296 dimensiones es mas apenas y alcanzarias la mitad de las mismas... pero quien sabe.
Si lo que quieres es hacer alsi como una BDD es mejor que uses SQLite ( si es tu juego ), o alguna BDD respetable.
Para la base de datos uso MySQL, pero el caso es que el juego me produce un error que no deja depurar, simplemente aparece el cartel que dice "No Enviar" y algunas veces me lanza un error en uno de los modulos referente a que las variables static no pueden ser mayores de 64k, me imagine que alguna de las variables del juego lanza ese error. El UDT tiene 18 variables string y declaro ese udt como dinamico y cuando se carga el juego llega al tamaño de UDT(1 to 4249). Supuse que para que mostrara el error de no enviar tenia que ser algo que no se descargaba bien o alguna saturacion en la memoria, sin embargo aun no doy con el problema :S
En línea
Todo aquello que no se puede hacer, es lo que no intentamos hacer. Projecto Ani-Dimension Digital Duel Masters (Juego de cartas masivo multijugador online hecho en Visual Basic 6.0)
(4249 * 18 * 2 (unicode)) * (promedio ... 20 caracteres ) = 3059280 = Casi 3 megas 4249 me suena un poco excesivo para tener en memoria con 18 strings que guardas en esos strings? Podrias limitarlos a un tamaño maximo
Código
PrivateType Usuario
Nombre AsString * 5
Apellido AsString * 5
EndType
Supongo que liberarás la memoria de ese array UDT usando Erase no?
El array nunca lo libero, necesito que este activo durante toda la aplicacion ya que hay tengo unos datos que se leen durante casi toda la ejecucion del programa y leerlos cada vez del disco duro umm no creo que sea buena ida xD...
En línea
Todo aquello que no se puede hacer, es lo que no intentamos hacer. Projecto Ani-Dimension Digital Duel Masters (Juego de cartas masivo multijugador online hecho en Visual Basic 6.0)
El error debe hubicarse en otro lugar... no creo que sea culpa de los UDT... almenos que juegues con sus "punteros" o dirreciones... aun asi es mejor ver que numero de error sale, y la descripcion del mismo!¡.