[Linux-Biella] serializzazione dati in c++
PaulTT
paultt a bilug.linux.it
Ven 7 Gen 2011 00:13:14 CET
On 27/12/2010 00:54, Ledi Salillari 說:
> Ciao a tutti.
> Volevo fare una funzione in c++ per scrivere su un file di
> configurazione delle variabili di un programma (dimensione finestra,
> fullscreen/windowed, antialiasing ecc)
>
> Da quello che ho capito in c++ non c'è la riflessione, quindi non
> posso creare una stringa dal nome di una variabile (giustamente
> essendo i nomi delle variabili gestiti dal compilatore e non in runtime)
>
> Quindi l'ipotesi era di creare una struttura/classe per le variabili
> con dentro tipo di dato e nome della variabile. Qualcosa di silmile
>
> struct nome{
> tipo dato;
> string nome;
> };
>
> Idem per la classe. Qui nasce un problema. Essendo i dati che vorrei
> scrivere di tipo completamente diverso dovrei fare una struttura per
> ogni tipo di dato e fare un casting prima di scrivere e prima di
> leggerle. Con le classi invece potrei usare le template ma non li ho
> usati poco. L'idea era qualcosa di simile
>
> template<class T> class Nome{
> public:
> //metodi di scrittura e lettura
> private:
> T dato;
> string nome;
> };
>
> Ci sono altri metodi per fare la stessa cosa o sono nella giusta via?
> accetto critiche, suggerimenti e anche insulti se sto facendo casini.
domanda:
come fai a fare il casting se non sai prima che tipo sono le variabili
stesse?
cosa vuoi fare di preciso, alla fine?
di logica ti carichi una struct con dentro tutte le variabili con i loro
valori di dafault, leggi il file di conf e ci ficchi le conf che servono
a te.
quando chiudi il programma, o quando sgnacchi 'salva opzioni', dipende
dalla logica del programma, scrivi i valori diversi sul file di conf
(oppure lo lasci editare solo a mano, dipende da cosa fa il pgm
appunto), oppure li scrivi cmq tutti e via...
--
- I can't wait till tomorrow.
- What happens tomorrow?
- I get better-looking every day.
Maggiori informazioni sulla lista
Linux