#include "sc2102.h" /////////////////////////////////////////////////////////// // Totalizzatore /////////////////////////////////////////////////////////// TTotal::TTotal(const TImporto& imp, const real& sca, const real& esp, const real& lit) : _importo(imp), _scaduto(sca), _esposto(esp), _importo_lire(lit) { } TTotal::TTotal(const TImporto& uns) : _unassigned(uns) { } void TTotalizer::add(const TImporto& imp, const real& sca, const real& esp, const real& lit, const TString& val) { TString16 codice(val); if (codice == "LIT") codice.cut(0); TObject* obj = objptr(codice); if (obj != NULL) { TTotal& tot = (TTotal&)*obj; tot.importo() += imp; tot.scaduto() += sca; tot.esposto() += esp; tot.importo_lire() += lit; } else { obj = new TTotal(imp, sca, esp, lit); TAssoc_array::add(codice, obj); } } void TTotalizer::add(const TImporto& uns, const TString& val) { TString16 codice(val); if (codice == "LIT") codice.cut(0); TObject* obj = objptr(codice); if (obj != NULL) { TTotal& tot = (TTotal&)*obj; tot.unassigned() += uns; } else { obj = new TTotal(uns); TAssoc_array::add(codice, obj); } } /////////////////////////////////////////////////////////// // TFilearray /////////////////////////////////////////////////////////// void TFile_array::open(int logicnum, ...) { va_list marker; va_start(marker, logicnum); while (logicnum > 0) { CHECKD(_file.objptr(logicnum) == NULL, "File gia' aperto: ", logicnum); _file.add(new TLocalisamfile(logicnum), logicnum); logicnum = va_arg(marker, int); } } void TFile_array::close() { _file.destroy(); }