erlug
[Top] [All Lists]

Re: File .ini (was: [Erlug] Connessione con qualsiasi cosa !!!)

To: erlug@xxxxxxxxxxxxxx
Subject: Re: File .ini (was: [Erlug] Connessione con qualsiasi cosa !!!)
From: Alessandro Forghieri <alf@xxxxxxxx>
Date: Mon, 10 Sep 2001 09:44:41 +0200 (MET DST)
Saluti.

Davide> Approfitto di questo thread per un commento: a mio modesto
Davide> parere, una delle prime cose che la comunità Linux è stroncare
Davide> sul nascere ogni tentativo di adoperare il formato ini per i
Davide> file di configurazione.

Joker> Un semplice XML risolve il problema egregiamente, IMHO

Ne risolve alcuni (quelli legati al formato) non altri (quelli legati
agli aspetti applicativi). Con una buona progettazione e' possibile
correggerne alcuni in sede di validazione (es. specifiche multiple
delle chiavi), ma non tutti.

Mune> non sempre. Ho dovuto scrivere un parser .ini per un window
Mune> manager che sto curando. E' un aggeggio che deve girare su un
Mune> ipaq, quindi lo spazio e' poco. Usare xml mi avrebbe costretto
Mune> ad usare una libreria con un sacco di funzionalita' inutili
Mune> (validazione e pippe simili) e soprattutto molto ingombrante.

Expat di Jim Clark e' scritto in C, ad eventi (ma non aderisce a SAX), e' 
il parser XML + veloce in circolazione. E' non validante. Sulla mia macchina,
expat.dll e' 128K e ricompilata con minimize size diventa ~65K. 
Apache ne contiene una versione (expat-lite) di 40.8kb.

Un tokenizzatore non validante (xmln.exe - non ricordo + dove si trova ma
si scarica 4 free) va sui 112K. La versione validante ha circa la stessa 
dimensione. 

Non mi sembrano dimensioni proibitive (ma non so neanche quali sono i tuoi 
limiti di spazio).

Mune> Inoltre per molti programmi un xml e' decisamente
Mune> cervellotico, ini e' piu' leggero, e spesso non e' nemmeno
Mune> necessaria la divisione in sezioni (ne fai una sola, con tutte
Mune> le voci sotto) 

<?xml version="1.0"?>
<myconfig>
 <item1 value="val1"/>
 <item2 value="val2"/>
 <item3 value="val3"/>
</myconfig>
<!-- End of file -->

Mune> per quanto riguarda le entry doppie, se il parser
Mune> e' intelligente, al momento del salvataggio tiene solo quella
Mune> valida.

Idem con xml, se il parser e' intelligente - cioe' se lo sono i tuoi
callback, visto che abbiamo escluso la validazione, che poi tanto
intelligente non e'. E i commenti si possono altresi' eliminare. Ma
nota che se fai quello, allora forse ti conviene memorizzare una
rappresentazione gia' tokenizzata (che richieda un parser assolutmante
minimo e stupido) e utilizzare la forma leggibile solo quando lo vuoi
cambiare.

Cheers, 
alf






<Prev in Thread] Current Thread [Next in Thread>