Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Leer Ficheros Binarios En Estructuras (c#)

Iniciado por Lord Trancos 2, 04 de Agosto de 2005, 03:58:08 AM

« anterior - próximo »

Lord Trancos 2

 Efectivamente hacer un serialize de toda la clase no me interesa, pq el fichero como bien comentais tiene un formato que no quiero cambiar y se genera con herramientas que nada tienen que ver con c#.

Lo del arrayList que comenta vicente, si que parece ser lo que me interesa. Ya que, aunque me da igual leer la cabecera del fichero campo a campo, lo que no quiero es leer el "vertex buffer" a lo tonto como en el código de ejemplo que antes.
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

Lord Trancos 2

 Mielda.... nada, que lo de serialize no me sirve... no me habia dado cuenta pero ya me lo estabais diciento... (nooo)

Estaba haciendo unas pruebecillas de escribir un array en un fichero y veo que me pone "cosas raras" dentro del fichero...


...Version=1.0.2042.31070, Culture=neutral, PublicKeyToken=null...


La madre que lo pario  (grrr)

No me puedo creer que algo tan sencillo pueda estar tan complicado.... ¿no hay forma humana de leer un array de vertices sencilla en este lenguaje o que?  (grrr)  (grrr)  (grrr)  
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

zupervaca

 pues segun vayas programando mas y mas te daras cuenta que el c-sharp no esta bien pensado  ;)  

Lord Trancos 2

Cita de: "zupervaca"pues segun vayas programando mas y mas te daras cuenta que el c-sharp no esta bien pensado  ;)
Pues a duras penas acabo de empezar  (asco)  
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

BeRSeRKeR

 Recuerdo haber visto código en C# que leía los mapas de quake3 y utilizaba unos métodos para leer las estructuras de la misma forma que se hace en C/C++. Eso sí, creo recordar que utilizaba bloques de código no seguro.

Por desgracia no recuerdo dónde lo ví. :D

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Lord Trancos 2

Cita de: "BeRSeRKeR"Eso sí, creo recordar que utilizaba bloques de código no seguro.
Entonces no te preocupes, codigo no seguro para hacer lo que quiero lo he encontrado, pero prefiero no usarlo por ahora.

Por cierto, en el engine teneis codigo no seguro?
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

BeRSeRKeR

 Creo que las únicas secciones donde hay código no seguro es en dos métodos del wrapper para Newton.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Vicente

 Hola,

se me ocurren varias alternativas:

a ) has probado las 3000 asignaciones esas? Tan lentas son?
b ) hazte un programa en C++, lees el fichero (eso es muy facil no?) y lo reescribes en SOAP (esto ya no se si es muy fácil). Leerlo así está tirado en C# (es el serializador XML). También lo podrías leer luego en Java por ejemplo.

Yo diría que además de ser problema del C#, es problema del formato ;) Un saludo!

Vicente

P.D.: lo del serializador SOAP no lo he probado, pero eso dice la teoría :P

Vicente

Cita de: "zupervaca"pues segun vayas programando mas y mas te daras cuenta que el c-sharp no esta bien pensado  ;)
Hola,

lo diseñó el mismo tio que diseñó el Delphi. Supongo que ese hombre sabe lo que se hace... ;) Un saludo!

Vicente

Lord Trancos 2

 
Citar
a ) has probado las 3000 asignaciones esas? Tan lentas son?

No. No las he probado. Mi "alma" coder se niega a escribir "eso".

Citar
Yo diría que además de ser problema del C#, es problema del formato

Bwuaaaahahahahahahaha!  :lol:
Estas de coña, no? Sabes cuantos formatos de fichero existen similares ?

Citar
lo diseñó el mismo tio que diseñó el Delphi. Supongo que ese hombre sabe lo que se hace... wink2.gif

Adoro el Delphi. Programo en Delphi.
Pero si no encuentro una forma "decente" y "safe" de leer ficheros como ese en c#, algo esta mal en ese lenguaje.
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

Vicente

Cita de: "Lord Trancos 2"Bwuaaaahahahahahahaha!  :lol:
Estas de coña, no? Sabes cuantos formatos de fichero existen similares ?
Hola!,

nop, no lo estoy: es un formato viejo pensado para lenguajes viejos ;) Un saludo!

Vicente

P.D.: lo cual no quita que el formato sea útil, solo digo que ahora con lo que se lleva el XML (por ejemplo), pues los nuevos lenguajes estos (Java, C#), están pensados para trabajar con eso, no con formatos más de ficheros de texto y tal.

ethernet

 Yo no sé si lord habrá terminado su juego y estará optimizando, pero me surge la eterna duda: cuando se debe empezar a pensar en la optimización? Es realmente tan importante mejorar las cargas? sería mejor utilizar ese tiempo en mejorar otros aspectos más visibles para el usuario como la jugabilidad?

Me resulta curioso ver como la gente piensa en optimizar con asm y cosas de ese tipo. En mi opinión lo primero es tener algo jugable, lo siguiente, mejorarlo y si sobra tiempo, optimizar el código, pero desde luego como ultimísimo recurso. Creo que cuando una persona lleve 20 años programando juegos se puede permitir el lujo de optimizar "al vuelo".

mis dos céntimos XD

Lord Trancos 2

 Vicente
Me parece muy bien que c# este horientado a xml y tal... pero luego nos quejamos de que si tal o cual programa me va lento en mi flamante sextium 8 a choporrocientosmil teraherzios.

Entiendo que los nuevos lenguages esten diseñados pensando en la productividad y la estabilidad por encima de la eficiencia, pero de ahi a ralentizar absurdamente (safe mode) la lectura del monton de formatos binarios que hay en este mundo,... me parece una barbaridad. Si algo tan básico no se puede hacer de forma mas o menos eficiente, apaga y vamonos.

ethernet
Nooooo.... que va. A mi juego aun le queda un largo trecho. Amen, de que esta hecho en Delphi y no en c#. Estas dudas sobre c# son simplemente pq estoy aprendiendolo ahora, y claro, quiero saber la forma correcta de hacer las cosas; la forma cutre (la que puse de ejemplo) ya la conocia.

Coincido contigo en que lo primero es tener algo jugable y no perder el norte con otras cosas. Pero no creo que hagan falta 20 años de experiencia para que a la hora de cargar un array de vertices te permitas el "lujo" de hacerlo de una tacada y no de vertice en vertice :P

---

En fins... que me veo que al final me tocará hacerlo en plan guarro o usar unsafe mode...  <_<
¿Nadie con una idea revolucionaria de última hora que permita hacerlo "como dios manda"?  :rolleyes:  
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

Haddd

 Yo estoy con Vicente. C# no está pensado para cosas del pasado y le cuesta....Por eso todos los nuevos formatos de fichero están cambiando....Sin embargo, siempre puedes utilizar Managed C++ o código unsafe para estas cosas. Ciertamente decidir que el C# es bueno o malo por el cargador de formatos antiguos....

zupervaca

 si tus modelos son del 3dsmax puedes usar el script que hice para crear ficheros y guardar datos en formato xml desde maxscript, esta en mi web por si quieres descargartelo y usarlo para lo que tu quieras, incluso limpiarte el kks con el  :D
en mi caso el modelo de pruebas que estoy haciendo (quitando el md2 cutre que tengo para probar rollos) es en formato xml exportado desde el 3dsmax, no obstante en este formato cuando se lee del disco se estan realizando asignaciones sin parar, con lo que es lo mismo  ;)

saludos






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.