Article View: es.comp.os.linux.programacion
Article #18132Re: programadores todos...me estoy oxidando
From: batsman batsman
Date: Tue, 28 Sep 1999 00:00
Date: Tue, 28 Sep 1999 00:00
120 lines
6321 bytes
6321 bytes
-----BEGIN PGP SIGNED MESSAGE-----
Bueno bueno bueno, me va a salir un followup tan laaaaargo que mejor lo
env�o en 2 cachos:
cacho 1
In article <37efdbd7.5671156@news-3.rediris.es>, franci72 wrote:
>>�Y qu� es lo que quieres? :-D
> Una lista asociativa para C ademas de C++, etc en C ( que es el
>que mas uso).
�Y �sto no te vale? --> <glib.h>
...
/* Hash tables
*/
GHashTable* g_hash_table_new (GHashFunc hash_func,
GCompareFunc key_compare_func);
void g_hash_table_destroy (GHashTable *hash_table);
void g_hash_table_insert (GHashTable *hash_table,
gpointer key,
gpointer value);
void g_hash_table_remove (GHashTable *hash_table,
gconstpointer key);
gpointer g_hash_table_lookup (GHashTable *hash_table,
gconstpointer key);
.. y m�s funcs a continuaci�n ...
>>Lo que parece claro es que no deber�amos rehacer las estructuras
>>de datos b�sicas. Tal vez ser�a m�s interesante proporcionar funcionalidades
>>adicionales, como por ejemplo (sugerencias):
>>- gesti�n de archivos de configuraci�n (dotfiles)
>No se a que tipo te refieres, cuando tenga la lista asociativa, tengo
>pensado hacer un objeto conf para la gestion de archivos de
>configuraci�n tipo .ini de windows (compatible con el lilo.conf
>ld.so.conf, etc) y tambien del tipo XF86Config
Tengo c�digo *muy cutre* para otro programa *cutre* que me hice hace un par
de meses (asNews, baja las noticias de Freshmeat, Slashdot, Segfault,
LinuxApps, LinuxToday, KDE, BBC, CEO, 7am... m�s info en Freshmeat).
No es m�s que un recubrimiento en C++ de las tablas hash de glib.
Lo uso para los archivos de configuraci�n... Para que te hagas una idea
ah� van cachos de header:
class GenericHash: public Cloneable {
private:
GHashTable *hash;
public:
Cloneable *get_field(char *);
int insert_field(char *, Cloneable *);
int delete_field(char *);
int count_fields();
void foreach ( void (*)(gpointer, gpointer, gpointer), void * );
GenericHash(const GenericHash &);
GenericHash();
GenericHash(const GenericHash *);
~GenericHash() { destroy(); }
void destroy();
Cloneable *clone() { return new GenericHash(this);}
};
Simplemente guarda objetos Cloneable asociados a un char*, tambi�n puedes
tener lista de listas, etc...
>> --> facilitar el uso/creaci�n de lenguajes de extensi�n
>Mande? tiene algo que ver con un interprete, de eso hice uno
>(interprete de Pseudocodigo+Controlador Canal de Panama) como practica
>para Automatas y Lenguajes formales (ofu que pecha).
Es que estoy viciado desde que vi un interprete de C en un libro de Schildt...
despu�s me le� todo lo que pude sobre stack machines (incluida la
especificaci�n del JVM)... despu�s descubr� forth... Al final no hago
m�s que ir de doc en doc sin programar nada ;)
>Pues si es buena idea.
>>- lo mejor: un GC que hasta yo sepa c�mo usar :)
>> (habr�a que tener varias implementaciones)
>�Que es exactamente GC?
Un recolector de basura (Garbage Collector). Ya existen unos cuantos para
C, pero nunca me he lanzado a usar uno.
>>- IPC sin depender de SYSV (�c�mo se puede hacer de manera portable?, tal
>>vez mediante archivos... lento)
>De eso estoy poco puesto aun, pero todo llegara.
�Y te crees que yo s� de esto? Tan s�lo lo que pon�a en el librito "Unix,
programaci�n avanzada" de ra-ma. ?;)
>>Tambi�n se podr�a hacer un "recubrimiento" en C++ de las funciones de glib,
>>por ejemplo. (SIN TEMPLATES, que dan problemas hasta en el egcc)
>uy,uy,uy eso para dentro de mucho tiempo que tengo cates hasta en el
>recreo.
Pues a m� me parece lo m�s sencillo de todo lo propuesto anteriormente.
Pesado pero sencillo (la glib tiene muchas cosas).
- --
_ _
| |__ __ _| |_ ___ _ __ ___ __ _ _ __
| '_ \ / _` | __/ __| '_ ` _ \ / _` | '_ \
| |_) | (_| | |_\__ \ | | | | | (_| | | | |
|_.__/ \__,_|\__|___/_| |_| |_|\__,_|_| |_|
________________________________________________________________
|Visit | http://www.geocities.com/SiliconValley/Vista/2075 |
| | <=> http://come.to/batsman |
| | and http://www.linuxfreak.com/~quickchat |
|Linux (esp): http://www.geocities.com/SiliconValley/Vista/4289 |
|----------------------------------------------------------------|
|Email: | mailto:batsman_DELME_@_NOSPAM_geocities.com |
| | (remove _DELME_ and _NOSPAM_) |
----------------------------------------------------------------
POWERED BY GNU/LINUX DEBIAN 2.01 HAMM
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: noconv
iQCVAwUBN/D5uWXo+KDAJZdtAQHz+AP/R+ifBYbQeux2c9gdQFNOioNZLmERwHR9
NNVe0uYSMl9I7sFC+ks5IwVD35Ut55YvBnipLDGdmAIAsRVzz85S/QeQHon7Tz6Z
h+xoMdUQFmwoTZ2HmgalHYNMV+9ub1t2dFHsy3WFAx4VQStbsmArpoNLQW/v0EDO
RCMUFJ1zXzo=
=7/cQ
-----END PGP SIGNATURE-----
Technical Details
Message-ID:
<vjtqs7.rk.ln@simpsons4ever>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<7rqela$1d7$1@nnrp1.deja.com> <37e378ee.4400639@news-3.rediris.es> <7s4vo4$5vq$1@nnrp1.deja.com> <37e93e1d.1457987@news-3.rediris.es> <7vsds7.621.ln@simpsons4ever> <37efe20c.1217156@news-3.rediris.es> <9bhis7.256.ln@simpsons4ever> <37efdbd7.5671156@news-3.rediris.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,cf81c02f1c0b3d34 X-Google-Attributes: gidf86c8,public From: batsman@simpsons4ever. (batsman) Subject: Re: programadores todos...me estoy oxidando Date: 1999/09/28 Message-ID: <vjtqs7.rk.ln@simpsons4ever> X-Deja-AN: 530357545 Content-Transfer-Encoding: 8bit References: <7rqela$1d7$1@nnrp1.deja.com> <37e378ee.4400639@news-3.rediris.es> <7s4vo4$5vq$1@nnrp1.deja.com> <37e93e1d.1457987@news-3.rediris.es> <7vsds7.621.ln@simpsons4ever> <37efe20c.1217156@news-3.rediris.es> <9bhis7.256.ln@simpsons4ever> <37efdbd7.5671156@news-3.rediris.es> Content-Type: text/plain; charset=iso-8859-1 X-Complaints-To: abuse@bt.es X-Trace: titan.bt.es 938537351 15247 212.49.137.66 (28 Sep 1999 16:49:11 GMT) Organization: Debian 2.01 HAMM User Mime-Version: 1.0 Reply-To: batsman_DELME_@_NOSPAM_geocities.com NNTP-Posting-Date: 28 Sep 1999 16:49:11 GMT Newsgroups: es.comp.os.linux.programacion