From a98e81e925d30b1354bf9a65126a9d1275f148b1 Mon Sep 17 00:00:00 2001 From: guy Date: Thu, 1 Oct 1998 13:52:27 +0000 Subject: [PATCH] Patch level : Files correlati : Ricompilazione Demo : [ ] Commento : currency.* Migliorata gestione valute nulle date.h Migliorati operatori di somma date.cpp Eliminato uso inutile della __tmp_date execp.cpp Corretta chiamata a chiusura files expr.h Trasformato Sandro in Alex expr.cpp Sostituiti vari real(0.0) con ZERO git-svn-id: svn://10.65.10.50/trunk@7199 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/currency.cpp | 32 ++++++++++++++++++++++---------- include/currency.h | 7 ++++--- include/date.cpp | 24 +++++++++++------------- include/date.h | 8 ++++---- include/execp.cpp | 2 +- include/expr.cpp | 7 +++---- include/expr.h | 2 +- 7 files changed, 46 insertions(+), 36 deletions(-) diff --git a/include/currency.cpp b/include/currency.cpp index 6a9876eef..621179240 100755 --- a/include/currency.cpp +++ b/include/currency.cpp @@ -54,7 +54,7 @@ TObject* TDowJones::rec2obj(const TRectype& rec) const if (data->_num < 1.0) data->_num = 1.0; data->_den = rec.get_real("R10"); - data->_num = 1.0; + const TString& codval = rec.get("CODTAB"); data->_dec = codval.empty() || codval == "LIT" ? 0 : 2; } @@ -135,11 +135,19 @@ int TDowJones::get_dec(const char* val) // TCurrency /////////////////////////////////////////////////////////// -void TCurrency::change_value(const char* val) +void TCurrency::set_currency(const char* val) +{ + if (val && *val) + strncpy(_val, val, 4); + else + strcpy(_val, DowJones.get_defval()); +} + +void TCurrency::change_currency(const char* val) { if (_num != ZERO) _num = DowJones.exchange(_num, _val, val); - strncpy(_val, val, 4); + set_currency(val); } void TCurrency::read(const TRectype& rec, const char* field, const char* val) @@ -147,12 +155,10 @@ void TCurrency::read(const TRectype& rec, const char* field, const char* val) _num = rec.get_real(field); if (val == NULL || *val == '\0') val = "_VALUTA"; + TString16 tmpval; if (rec.exist(val)) - strcpy(_val, rec.get(val)); - else - *_val = '\0'; - if (*_val == '\0') - strcpy(_val, DowJones.get_defval()); + tmpval = rec.get(val); + set_currency(tmpval); } void TCurrency::write(TRectype& rec, const char* field, const char *val, bool forceval) const @@ -183,7 +189,7 @@ int TCurrency::compare(const TSortable& s) const return _num == cur._num ? 0 : (_num > cur._num ? +1 : -1); } TCurrency curr(cur); - curr.change_value(_val); + curr.change_currency(_val); return _num == curr._num ? 0 : (_num > curr._num ? +1 : -1); } @@ -207,6 +213,12 @@ const char* TCurrency::string(bool dotted) const return _num.string(picture); } +TCurrency::TCurrency() : _num(0.0) +{ + set_currency(NULL); +} + + TCurrency::TCurrency(const TCurrency& cur) : _num(cur._num) { @@ -216,6 +228,6 @@ TCurrency::TCurrency(const TCurrency& cur) TCurrency::TCurrency(const real& num, const char* val) : _num(num) { - strncpy(_val, val, 4); + set_currency(val); } diff --git a/include/currency.h b/include/currency.h index d27e29ddb..8abcda984 100755 --- a/include/currency.h +++ b/include/currency.h @@ -18,8 +18,9 @@ protected: virtual int compare(const TSortable& s) const; public: - void change_value(const char* newval); - const char* get_value() const { return _val; } + void change_currency(const char* newval); + const char* get_currency() const { return _val; } + void set_currency(const char* newval); void set_num(const real& num) { _num = num; } const real& get_num() const { return _num; } @@ -30,7 +31,7 @@ public: void read(const TRectype& rec, const char* field, const char *val = NULL); void write(TRectype& rec, const char* field, const char *val = NULL, bool forceval = FALSE) const; - TCurrency() { _val[0] = '\0'; } + TCurrency(); TCurrency(const TCurrency& cur); TCurrency(const real& num, const char* val = ""); virtual ~TCurrency() { } diff --git a/include/date.cpp b/include/date.cpp index 2aeca6385..118b93b00 100755 --- a/include/date.cpp +++ b/include/date.cpp @@ -450,7 +450,7 @@ bool TDate::ok() const // @doc EXTERNAL // @func TDate& | operator + | Incrementa la data di un certo numero di giorni -TDate& operator +( +TDate operator +( const TDate& a, // @parm Data a cui aggiungere i giorni long nday) // @parm Numero di giorni da aggiungere @@ -458,30 +458,28 @@ TDate& operator +( // @syntax operator + (long nday, const TDate& a) // // @comm E' indifferente quale parametro viene passato per primo - { - __tmp_date = a.julian2date(a.date2julian() + nday); - return __tmp_date; + TDate tmp = a.julian2date(a.date2julian() + nday); + return tmp; } -TDate& operator +(const long nday, const TDate& b) - +TDate operator +(const long nday, const TDate& b) { - __tmp_date = b.julian2date(b.date2julian() + nday); - return __tmp_date; + TDate tmp = b.julian2date(b.date2julian() + nday); + return tmp; } // @doc EXTERNAL // @func TDate& | operator - | Decrementa la data di un certo numero di giorni -TDate& operator -( +TDate operator -( const TDate& a, // @parm Data da decrementare long nday) // @parm Numero di giorni da togliere { - __tmp_date = a.julian2date(a.date2julian() - nday); - return __tmp_date; + TDate tmp = a.julian2date(a.date2julian() - nday); + return tmp; } // @doc EXTERNAL @@ -503,9 +501,9 @@ void swap( TDate& b) // @parm Seconda data da scambiare { - __tmp_date = b; + const TDate tmp = b; b = a; - a = __tmp_date; + a = tmp; } // @doc EXTERNAL diff --git a/include/date.h b/include/date.h index 8f499ec86..a41d0382e 100755 --- a/include/date.h +++ b/include/date.h @@ -83,7 +83,7 @@ public: int month() const ; // @cmember Ritorna l'anno int year() const ; - // @cmember Ritorna il giorno della settimana (0 = domenica) + // @cmember Ritorna il giorno della settimana (1 = Lunedi, 7 = domenica) int wday() const ; // @cmember Ritorna la settimana dell'anno int week() const ; @@ -194,9 +194,9 @@ public: TFormatted_date(const TFormatted_date& d); }; -TDate& operator +(const TDate& a, long nday) ; -TDate& operator +(const long nday, const TDate& b) ; -TDate& operator -(const TDate& a, long nday) ; +TDate operator +(const TDate& a, long nday) ; +TDate operator +(const long nday, const TDate& b) ; +TDate operator -(const TDate& a, long nday) ; long operator -(const TDate& a, const TDate& b) ; // @doc EXTERNAL diff --git a/include/execp.cpp b/include/execp.cpp index 212dca749..8c0033c4c 100755 --- a/include/execp.cpp +++ b/include/execp.cpp @@ -98,7 +98,7 @@ word TExternal_app::run( } */ if (!async) - prefix().close_closeable_isamfiles(); + safely_close_closeable_isamfiles(); if (dongle().local()) dongle().logout(); diff --git a/include/expr.cpp b/include/expr.cpp index a3461081e..b3a0bb13c 100755 --- a/include/expr.cpp +++ b/include/expr.cpp @@ -189,7 +189,7 @@ TExpression::TExpression(const char* expression, TTypeexp type, bool ignore_err) { _ignore_error=ignore_err; _error=0; - _val = real(0.0); + _val = ZERO; _dirty = TRUE; _type = type; if (!compile(_original, type)) @@ -206,7 +206,7 @@ TExpression::TExpression(TTypeexp type, bool ignore_err) { _ignore_error=ignore_err; _error=0; - _val = real(0.0); + _val = ZERO; _dirty = FALSE; _type = type; _code.clear(); @@ -1155,13 +1155,12 @@ bool TExpression::set(const char* expression, TTypeexp type) } bool TExpression::compile(const char* expression, TTypeexp type) - { _error=0; _user_func_defined = FALSE; _s = expression; _type = type; - _val = real(0.0); + _val = ZERO; _code.clear(); if (*_s == '\0') return TRUE; diff --git a/include/expr.h b/include/expr.h index 1d0311461..b81da7da0 100755 --- a/include/expr.h +++ b/include/expr.h @@ -206,7 +206,7 @@ public: // @base public | TArray class TCodearray : public TArray -// @author:(INTERNAL) Sandro +// @author:(INTERNAL) Alex // @access:(INTERNAL) Private Member {