Riportate sul main trunk le modifiche alle funzioni di autosave
git-svn-id: svn://10.65.10.50/trunk@5966 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
0c0abd6589
commit
e0cfd918cb
@ -137,16 +137,17 @@ void TRecord_text::add(const TString& c, int pos)
|
|||||||
_array.add(c, pos);
|
_array.add(c, pos);
|
||||||
}
|
}
|
||||||
//////////////////////////////////////// TFile_text ////////////////////////////////////////
|
//////////////////////////////////////// TFile_text ////////////////////////////////////////
|
||||||
TTracciato_record* TFile_text::t_rec(const char* type)
|
TTracciato_record* TFile_text::t_rec(const char* type) const
|
||||||
{
|
{
|
||||||
return (TTracciato_record*)_tracciati_record.objptr(type);
|
return (TTracciato_record*)_tracciati_record.objptr(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
TTracciato_record* TFile_text::t_rec(int mainfile)
|
TTracciato_record* TFile_text::t_rec(int mainfile) const
|
||||||
{
|
{
|
||||||
TTracciato_record *trrd;
|
TTracciato_record *trrd;
|
||||||
_tracciati_record.restart();
|
TAssoc_array &tr= ((TFile_text *)this)->_tracciati_record;
|
||||||
while (trrd=(TTracciato_record *)_tracciati_record.get())
|
tr.restart();
|
||||||
|
while (trrd=(TTracciato_record *)tr.get())
|
||||||
{
|
{
|
||||||
if (trrd->relation() && trrd->relation()->lfile().num()==mainfile)
|
if (trrd->relation() && trrd->relation()->lfile().num()==mainfile)
|
||||||
break;
|
break;
|
||||||
@ -597,13 +598,13 @@ bool TFile_text::_autoload(TRecord_text& rec, TCursor& cur , TTracciato_record&
|
|||||||
return can_write(rec,rel);
|
return can_write(rec,rel);
|
||||||
}
|
}
|
||||||
|
|
||||||
int TFile_text::autosave(int mainfile, const TRecord_text& rec)
|
int TFile_text::autosave(const TRecord_text& rec, int mainfile )
|
||||||
{
|
{
|
||||||
const TString& type = rec.type();//prendo il tracciato record del tipo del record_text
|
const TString& type = rec.type();//prendo il tracciato record del tipo del record_text
|
||||||
TTracciato_record* tr = t_rec(type);
|
TTracciato_record* tr = t_rec(type);
|
||||||
if (tr)
|
if (tr)
|
||||||
if (tr->relation())
|
if (tr->relation())
|
||||||
if (tr->relation()->lfile().num()==mainfile)
|
if (mainfile==0 || tr->relation()->lfile().num()==mainfile)
|
||||||
return _autosave(*(tr->relation()),rec, *tr);
|
return _autosave(*(tr->relation()),rec, *tr);
|
||||||
return NOERR; // l'assenza del tracciato non significa un errore
|
return NOERR; // l'assenza del tracciato non significa un errore
|
||||||
}
|
}
|
||||||
@ -618,7 +619,7 @@ int TFile_text::autosave(TRelation& rel, const TRecord_text& rec)
|
|||||||
int TFile_text::autosave(int mainfile)
|
int TFile_text::autosave(int mainfile)
|
||||||
{
|
{
|
||||||
CHECK(_current,"Record corrente non settato");
|
CHECK(_current,"Record corrente non settato");
|
||||||
return autosave(mainfile,*_current);
|
return autosave(*_current,mainfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Carico la relazione con i dati del record text
|
//Carico la relazione con i dati del record text
|
||||||
|
@ -95,7 +95,7 @@ public:
|
|||||||
// @cmember Restituisce la relazione associata al tracciato
|
// @cmember Restituisce la relazione associata al tracciato
|
||||||
TRelation * relation() const {return _rel;}
|
TRelation * relation() const {return _rel;}
|
||||||
// @cmember Setta la relazione associata al tracciato
|
// @cmember Setta la relazione associata al tracciato
|
||||||
void set_relation(TRelation * rel) {_rel = rel;}
|
void set_relation(TRelation * rel) ;
|
||||||
void add(const TTracciato_campo& tc, int pos = -1);//aggiunge tracciato campo all'array
|
void add(const TTracciato_campo& tc, int pos = -1);//aggiunge tracciato campo all'array
|
||||||
void add(TTracciato_campo* tc, int pos = -1);//aggiunge tracciato campo all'array
|
void add(TTracciato_campo* tc, int pos = -1);//aggiunge tracciato campo all'array
|
||||||
TTracciato_campo& get(int n);//ritorna il tracciato campo n dell'array (se non c'e' lo crea)
|
TTracciato_campo& get(int n);//ritorna il tracciato campo n dell'array (se non c'e' lo crea)
|
||||||
@ -209,10 +209,10 @@ public:
|
|||||||
void set_curr(TRecord_text& rec) {_current = &rec;}//setta il record corrente a rec
|
void set_curr(TRecord_text& rec) {_current = &rec;}//setta il record corrente a rec
|
||||||
void set_curr(TRecord_text* rec) {_current = rec;}//setta il record corrente a rec
|
void set_curr(TRecord_text* rec) {_current = rec;}//setta il record corrente a rec
|
||||||
// @cmember ritorna il tracciato record del tipo passato
|
// @cmember ritorna il tracciato record del tipo passato
|
||||||
TTracciato_record* t_rec(const char* type);
|
TTracciato_record* t_rec(const char* type) const ;
|
||||||
// @cmember ritorna il tracciato record relativo alla relazione del file passato
|
// @cmember ritorna il tracciato record relativo alla relazione del file passato
|
||||||
// NB: si assume che ogni tracciato sia relativo ad una relazione diversa
|
// NB: si assume che ogni tracciato sia relativo ad una relazione diversa
|
||||||
TTracciato_record* t_rec(int mainfile);
|
TTracciato_record* t_rec(int mainfile) const ;
|
||||||
const int items_tr() const {return _tracciati_record.items();}//ritorna il numero di tracciati record nel file
|
const int items_tr() const {return _tracciati_record.items();}//ritorna il numero di tracciati record nel file
|
||||||
TAssoc_array& tracciati() {return _tracciati_record;}//ritorna un riferimento all'assoc_array dei tracciati record
|
TAssoc_array& tracciati() {return _tracciati_record;}//ritorna un riferimento all'assoc_array dei tracciati record
|
||||||
// @cmember caricamento automatico del record_text dalla relazione
|
// @cmember caricamento automatico del record_text dalla relazione
|
||||||
@ -230,11 +230,11 @@ public:
|
|||||||
//caricamento automatico della relazione dal record_text corrente
|
//caricamento automatico della relazione dal record_text corrente
|
||||||
int autosave(TRelation& rel) {return autosave(rel, *_current); };
|
int autosave(TRelation& rel) {return autosave(rel, *_current); };
|
||||||
//caricamento automatico della relazione definita nel tracciato dal record_text
|
//caricamento automatico della relazione definita nel tracciato dal record_text
|
||||||
int autosave(int mainfile, const TRecord_text& rec);
|
int autosave(const TRecord_text& rec, int mainfile=0);
|
||||||
//caricamento automatico della relazione definita nel tracciato dal record_text
|
//caricamento automatico della relazione definita nel tracciato dal record_text
|
||||||
int autosave(int mainfile);
|
int autosave(int mainfile);
|
||||||
int read(TRecord_text & rec);//legge da file di testo il record_text
|
int read(TRecord_text & rec);//legge da file di testo il record_text
|
||||||
int read(){return read(*_current);}//legge da file di testo il record_text corrente
|
int read() {return read(*_current);}//legge da file di testo il record_text corrente
|
||||||
//carica nel record_text il campo alla posizione <ncampo> con il valore <val> già formattato
|
//carica nel record_text il campo alla posizione <ncampo> con il valore <val> già formattato
|
||||||
void add_field(TRecord_text& rec, const int ncampo, const char* val);
|
void add_field(TRecord_text& rec, const int ncampo, const char* val);
|
||||||
//scarica dal record_text il campo alla posizione <ncampo>
|
//scarica dal record_text il campo alla posizione <ncampo>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user