• Miércoles 2 de Julio de 2025, 16:51

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - budoky

Páginas: [1]
1
C/C++ / Estructura y eficiencia del codigo
« en: Lunes 24 de Enero de 2011, 00:52 »
Hola, como he comentado en el subforo de visual c++ estoy pensando en hacer un editor de partidas guardadas, el problema que se me plantea es estructurar y leer de una forma sencilla el fichero de entrada que tiene un formato similar a:

Código: Text
  1. date="1415.4.8"
  2. player="DAN"
  3. monarch=7126
  4. cardinal=65
  5. leader=2050
  6. advisor=1937
  7. rebel=1808
  8. unit=1627
  9. flags=
  10. {
  11. }
  12. gameplaysettings=
  13. {
  14.     setgameplayoptions=
  15.     {
  16. 0 0 0 0 0 0 0 0 0 1 0 0 0   }
  17. }
  18. start_date="1399.10.14"
  19. id=
  20. {
  21.     id=14246
  22.     type=4713
  23. }
  24. rebel_faction=
  25. {
  26.     id=
  27.     {
  28.         id=229
  29.         type=40
  30.     }
  31.     type="particularist_rebels"
  32.     name="Swahili Particularists"
  33.     heretic="Ahmadi"
  34.     country="ZAN"
  35.     independence="---"
  36.     culture="swahili"
  37.     religion="sunni"
  38.     government="tribal_federation"
  39.     province=1196
  40.     leader=
  41.     {
  42.         id=1458
  43.         type=38
  44.     }
  45.     army=
  46.     {
  47.         id=230
  48.         type=40
  49.     }
  50.     provinces=
  51.     {
  52.         1186 1191   }
  53. }
  54. rebel_faction=
  55. {
  56.     id=
  57.     {
  58.         id=280
  59.         type=40
  60.     }
  61.     type="particularist_rebels"
  62.     name="Milanese Particularists"
  63.     heretic="Hussite"
  64.     country="MLO"
  65.     independence="---"
  66.     culture="lombard"
  67.     religion="catholic"
  68.     government="despotic_monarchy"
  69.     province=117
  70.     leader=
  71.     {
  72.         id=1474
  73.         type=38
  74.     }
  75.     army=
  76.     {
  77.         id=281
  78.         type=40
  79.     }
  80.     provinces=
  81.     {
  82.         115     }
  83. }
  84.  
  85.  

Se trata de un solo fichero de texto muy extenso, en texto plano puede llegar a ocupar unos 100Mb. Hasta ahora lo que hacia era leer cada linea y buscar cada componente con el strtok, de modo que por ejemplo para player="DAN", lo almaceno en una variable llamada player, mientras que me creo un objeto para los tipos rebel_faction y dentro pueden existir tambien otros objetos. Lo planteo como si fuese un arbol. El problema que se me presenta es que al leer así es que puede ser muy lento a la larga además del hecho de tener que almacenar tantísimas variables no se si es viable.  ¿Algún consejo sobre como leer y almacenar los datos de una forma más eficiente?

Como ejemplo un archivo de unos 10Mb supone aproximadamente 7 millones de lineas aunque he visto que pueden llegar a ocupar 12 millones de lineas. Aunque después no sea necesario almacenarlas todas.

Edito: Desconozco si hay alguna forma de editar el fichero buscando un compnente exacto para editarlo, de modo que solo se cache una parte del fichero.

2
Visual C++ / Interfaz gráfica
« en: Domingo 23 de Enero de 2011, 12:54 »
Hola a todos,
llevo un tiempo pensado en hacer un editor de partidas guardadas para el EU3 (Un juego de estrategia) y de paso tomar contacto con la plataforma de visual c++.

La idea es hacer un mapa de provincias, similar a (no se me permite publicar enlaces todavia, basicamente un mapa de provincias cualquiera) donde se pueda hacer click sobre una provincia y ejecutar determinados eventos, como por ejemplo cambiar el color de esa provincia. También me gustaría que tuviera zoom y desplazamiento pero eso no se si será demasiado complicado de implementar.

Bueno eso, que no tengo ni idea de por donde empezar o tan siquiera que tutoriales seguir para hacerlo, he estado buscando durante varios dias en google y no he encontrado nada que se asemeje.

Páginas: [1]