Foros - Stratos

Programadores => Código de la Semana => Mensaje iniciado por: ethernet en 25 de Mayo de 2003, 06:45:25 PM

Título: FilePacker -Zaelsius
Publicado por: ethernet en 25 de Mayo de 2003, 06:45:25 PM
Título: FilePacker -Zaelsius
Publicado por: Zaelsius en 26 de Mayo de 2003, 12:30:30 AM
                                La verdad es que me hubiera gustado incluir carga de ficheros "transparente", como hacen otras librerias, que comprueban si el fichero está en disco o está en el paquete y después lo cargan, pero al final no lo he puesto...

¿Wish list para la siguiente version? :D                                
Título: FilePacker -Zaelsius
Publicado por: ethernet en 26 de Mayo de 2003, 07:42:49 AM
De eso no debiera ocuparse una capa superior ? como una clase (o llamalo X) filesysstem q se encargará de buscar paquetes ficheros y demás.

La idea del optimizer es muy buena, rocks.

Enhorabuena por el código, está muy bien
Título: FilePacker -Zaelsius
Publicado por: Zaelsius en 04 de Junio de 2003, 11:06:11 AM
                                A ver si actualizan la portada de la web con el enlace al nuevo COTW... :ojo:                                
Título: FilePacker -Zaelsius
Publicado por: ethernet en 04 de Junio de 2003, 11:57:59 AM
si, tienes razon, dare un toque a luxito!! LUXITOO!!

A ver si tengo un poco mas de tiempo para mirarme los fuentes y hacer criticas estupidas para provocar flames sin sentido ;PP
Título: FilePacker -Zaelsius
Publicado por: ethernet en 05 de Junio de 2003, 09:56:47 AM
Ya he mirado un poco el codigo, aunque muy por encima. Unas preguntas:

Por que en los iterrators usas postincremento? normalmente se usa preincremento cuando se puede, es mas efectivo con iterators, no necesita hacer una copia temporal

Por que no usas un interface para el code y el decode asi como
struct ICodec
{
virtual void encode(..) = 0;
virtual void decode(..) = 0;
};
en vez de pasar un puntero a funcion, q queda muy cutre (muy con sabor a c ;P)

Por q no usas el hash<> de STL?

Un saludo
Título: FilePacker -Zaelsius
Publicado por: Zaelsius en 05 de Junio de 2003, 06:39:59 PM
                                Te respondo:

- Sobre los iteradores, no sabia que era más efectivo hacer el preincremento, aun no he leido todos los capítulos enteros sobre STL del C++ Programming Language del Stroustrup ;-)
 Pero ahora que lo pienso, tiene bastante sentido.

- Lo de la interfaz, pues tambien tienes razón. Me lo anoto.
 Es que con las p.... de prácticas que nos mandan en la uni, tampoco se puede practicar demasiado diseño con C++...XD  Te cuentan cuatro cosas sobre herencia en C++ y tienen los huevos de llamarlo "Programación Orientada a Objetos", en fin...
 Menos mal que poco a poco por nuestra cuenta(y con la ayuda de los demás strateros) vamos aprendiendo...

- Sobre el hash<>, en el libro que cito arriba no comenta nada(creo) sobre hash<>.  Aparecen los tipos map<> y hash_map<>, pero no he visto el que tu comentas.
map<> creo que utiliza internamente árboles, y hash_map pues supongo que una tabla hash, no?                                
Título: FilePacker -Zaelsius
Publicado por: ethernet en 05 de Junio de 2003, 07:38:25 PM
Tira el libro ;PP
stl tiene una clase llamada hash, almenos la stl de sgi q es la q yo uso (apostaria q STLport tb la tiene) es una clase q sirve para hash con std::string y char *, es la q uso yo para el hash q debes dar a hash_map. De todas maneras puedes usar el hash q te de la gana, seguro q es tan bueno como el q trae stl.

umh, el sistema de codec y manejode datos q usa el unreal se sale. tiene una clase FArchive que tiene unos cuantos metodos, entre ellos serialize(void *,int) y con el maneja todos los datos, tanto de ficheros como de otros sitios. Con esto tiene una clase codec

class codec
{
public: virtual void encode(FArchive &i,FArchive &o) = 0:
}

de esta manera le pasa un FArchive, que puede ser un fichero o simplemente datos en memoria y encodea.
Esta clase tb la usa para hacer serialize de los objetos, pero esa parte no la he mirado demasiado, tiene unas macros q son indecifrables para mi

un saludo :)