config.h Aggiunta funzione get_paragraph isam.cpp Eliminato warning per null_char = (char)0xFF; relapp.cpp Aggiunto supporto per transazioni mediante .ini relapp.h Aggiunte dichiarazioni per funzioni di gestione .ini realtion.cpp Aggiunta possibilita' di leggere e scrivere i TFieldref su .ini relation.h Aggiunte dichiarazioni dei metodi suddetti rmov.h Aggiunta dichiarazione dei NUMGIO strings.cpp Aggiunto operatore di copia tra TString_array string.h Dichiarato operatore di copia di array di stringhe git-svn-id: svn://10.65.10.50/trunk@4243 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			158 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			158 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#ifndef __CONFIG_H
 | 
						|
#define __CONFIG_H 
 | 
						|
 | 
						|
#ifndef INCL_XVTH
 | 
						|
#include <xvt.h>
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef __ASSOC_H
 | 
						|
#include <assoc.h>
 | 
						|
#endif
 | 
						|
 | 
						|
class ofstream;
 | 
						|
 | 
						|
// questo sara' il principale, per ora non c'e'
 | 
						|
#define CONFIG_GENERAL  0
 | 
						|
// file parametri studio (uno per studio, per ora e' il principale)
 | 
						|
#define CONFIG_STUDIO   1
 | 
						|
// file parametri ditta (uno per ditta)
 | 
						|
#define CONFIG_DITTA    2
 | 
						|
// file conversioni archivi
 | 
						|
#define CONFIG_FCONV    3
 | 
						|
// file parametri utente
 | 
						|
#define CONFIG_USER     4
 | 
						|
// file parametri stampe
 | 
						|
#define CONFIG_STAMPE   5
 | 
						|
// file parametri golem
 | 
						|
#define CONFIG_GOLEM    6
 | 
						|
 | 
						|
// @doc EXTERNAL
 | 
						|
 | 
						|
// @class TConfig | Classe per la gestione dei file di configurazione in formato
 | 
						|
//                  Windows
 | 
						|
//
 | 
						|
// @base public | TObject
 | 
						|
class TConfig : public TObject
 | 
						|
 | 
						|
// @author:(INTERNAL) Villa
 | 
						|
 | 
						|
  // @comm Sono definite alcune costanti per l'individuazione immediata di
 | 
						|
  //       alcuni file particolari e di frequente uso. Tali file sono:
 | 
						|
  //
 | 
						|
  // @flag CONFIG_GENERAL | Questo sara' il principale, per ora non c'e'
 | 
						|
  // @flag CONFIG_STUDIO | File parametri studio (uno per studio, per ora e'
 | 
						|
  //                       il principale)
 | 
						|
  // @flag CONFIG_DITTA | File parametri ditta (uno per ditta)
 | 
						|
  // @flag CONFIG_FCONV | File conversioni archivi
 | 
						|
  // @flag CONFIG_USER | File parametri utente
 | 
						|
  // @flag CONFIG_STAMPE | File parametri stampe
 | 
						|
  // @flag CONFIG_GOLEM | File parametri golem
 | 
						|
 | 
						|
  // @access:(INTERNAL) Private Member
 | 
						|
{
 | 
						|
 | 
						|
  // @cmember:(INTERNAL) Contenuto del paragrafo
 | 
						|
  TAssoc_array _data;
 | 
						|
  // @cmember:(INTERNAL) Nome del file di configurazione
 | 
						|
  TFilename _file;
 | 
						|
  // @cmember:(INTERNAL) Indica se il paragrafo e' stato modificato (TRUE se esiste)
 | 
						|
  bool _dirty;
 | 
						|
  // @cmember:(INTERNAL) Indica se il paragrafo e' presente (TRUE se esiste)
 | 
						|
  bool _ispresent;
 | 
						|
  // @cmember:(INTERNAL) Nome del paragrafo attivo
 | 
						|
  TString _paragraph;
 | 
						|
 | 
						|
  // @access Protected Member
 | 
						|
protected:
 | 
						|
  // @cmember Legge i dati del paragrafo
 | 
						|
  bool _read_paragraph();
 | 
						|
  // @cmember Scrive i dati del paragrafo
 | 
						|
  void _write_paragraph(ofstream&);
 | 
						|
  // @cmember Scrive il file di configurazione
 | 
						|
  void _write_file();
 | 
						|
  // @cmember Inizializza il paragrafo leggendo dal file di nome <p fn > i dati
 | 
						|
  void init(const char *fn, const char* pa);
 | 
						|
 | 
						|
  // @access Public Memeber
 | 
						|
public:
 | 
						|
 | 
						|
  // @cmember Ritorna il valore della variabile nella sezione corrente o in
 | 
						|
  //          quella specificata
 | 
						|
  TString& get(const char* var, const char* section = NULL, int index = -1, const char* def = "");
 | 
						|
 | 
						|
  // @cmember Ritorna il valore della variabile nella sezione corrente o in
 | 
						|
  //          quella specificata (se la variabile contiene un long)
 | 
						|
  long get_long(const char* var, const char* section = NULL, int index = -1, long def = 0L);
 | 
						|
 | 
						|
  // @cmember Ritorna il valore della variabile nella sezione corrente o in
 | 
						|
  //          quella specificata (se la variabile contiene un long)
 | 
						|
  char get_char(const char* var, const char* section = NULL, int index = -1, char def = ' ' );
 | 
						|
 | 
						|
  // @cmember Ritorna il valore della variabile nella sezione corrente o in
 | 
						|
  //          quella specificata (se la variabile contiene un int)
 | 
						|
  int get_int(const char* var, const char* section = NULL, int index = -1, int def = 0);
 | 
						|
  
 | 
						|
  // @cmember Ritorna il valore della variabile nella sezione corrente o in
 | 
						|
  //          quella specificata (se la variabile contiene un bool)
 | 
						|
  bool get_bool(const char* var, const char* section = NULL, int index = -1, bool def = FALSE);
 | 
						|
  
 | 
						|
  // @cmember Ritorna il valore del colore settato nella variabile nella
 | 
						|
  //          sezione corrente o in quella specificata
 | 
						|
  COLOR get_color(const char* var, const char* section = NULL, int index = -1, COLOR def = 0);
 | 
						|
  
 | 
						|
  // @cmember Setta il colore nella sezione corrente o specificata
 | 
						|
  bool set_color(const char* var, COLOR col, const char* section = NULL, bool force = TRUE, int index = -1);
 | 
						|
 | 
						|
  // @cmember Setta la variabile nella sezione corrente o specificata
 | 
						|
  bool set(const char* var, const char* value, const char* section = NULL, bool force = TRUE, int index = -1);
 | 
						|
  // @cmember Setta la variabile nella sezione corrente o specificata
 | 
						|
  bool set(const char* var, long value, const char* section = NULL, bool force = TRUE, int index = -1);
 | 
						|
  
 | 
						|
  // @cmember Controlla se esite una variabile nel paragrafo attivo
 | 
						|
  bool exist(const char* var, int index = -1);         
 | 
						|
  
 | 
						|
  // @cmember Elimina una variabile nel paragrafo attivo
 | 
						|
  bool remove(const char* var, int index = -1);         
 | 
						|
 | 
						|
  // @cmember Controlla se il paragrafo corrente e' nuovo (TRUE se nuovo)
 | 
						|
  bool new_paragraph()
 | 
						|
  { return !_ispresent; }
 | 
						|
 | 
						|
  // @cmember Ritorna quanti elementi dell'array nominato sono presenti nella
 | 
						|
  //          sezione indicata.
 | 
						|
  word items(const char* var, const char* section);
 | 
						|
  
 | 
						|
  // @cmember Ritorna il nome del paragrafo attivo
 | 
						|
  const TString& get_paragraph() const { return _paragraph; }
 | 
						|
  // @cmember Setta il paragrafo passato come quello attivo
 | 
						|
  bool set_paragraph(const char* par);
 | 
						|
 | 
						|
  // @cmember Riempie pl con la lista dei paragrafi
 | 
						|
  int list_paragraphs(TString_array& pl);
 | 
						|
  
 | 
						|
  // @cmember Riempie <p vl> con la lista dei nomi delle variabili 
 | 
						|
  //          nella sezione corrente o in quella indicata; se 
 | 
						|
  //          add_value e' TRUE ci mette "variabile<pipe>valore" 
 | 
						|
  //          ACHTUNG: l'array e' in ordine HASH                         
 | 
						|
  int list_variables(TString_array& vl, bool add_value = FALSE, const char* section = NULL);                           
 | 
						|
  
 | 
						|
  // @cmember Ritorna l'intero array delle variabili della sezione 
 | 
						|
  //          eventualmente specificata da <p section>
 | 
						|
  const TAssoc_array& list_variables(const char* section = NULL);
 | 
						|
                            
 | 
						|
  // @cmember Ritorna il nome del file di configurazione
 | 
						|
  const TFilename& name() const { return _file; }
 | 
						|
                            
 | 
						|
  // @cmember Costruttore (il paragrafo iniziale e' il modulo corrente
 | 
						|
  //          salvo diversa indicazione)
 | 
						|
  TConfig(int which_config = CONFIG_GENERAL, const char* paragraph = NULL);
 | 
						|
  // @cmember Costruttore (il paragrafo iniziale e' il modulo corrente
 | 
						|
  //          salvo diversa indicazione)
 | 
						|
  TConfig(const char* file, const char* paragraph = NULL);
 | 
						|
 | 
						|
  // @ cmember Distruttore. Riscrive il file con le modifiche se necessrio,
 | 
						|
  virtual ~TConfig();
 | 
						|
};
 | 
						|
 | 
						|
#endif
 |