Aggiunta funzione len (di una stringa) alle espressioni
git-svn-id: svn://10.65.10.50/trunk@5481 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
7872861e54
commit
75d190f902
@ -577,6 +577,13 @@ void TExpression::eval()
|
|||||||
s1 = s1.sub(from, to);
|
s1 = s1.sub(from, to);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case _len:
|
||||||
|
{
|
||||||
|
TString s1(evalstack.pop_string());
|
||||||
|
|
||||||
|
evalstack.push(real(s1.len()));
|
||||||
|
}
|
||||||
|
break;
|
||||||
case _pow:
|
case _pow:
|
||||||
{
|
{
|
||||||
const real & r2 = evalstack.pop_real();
|
const real & r2 = evalstack.pop_real();
|
||||||
@ -709,20 +716,20 @@ HIDDEN char _tok[81];
|
|||||||
|
|
||||||
TCodesym TExpression::tok2fun(const char* tok) const
|
TCodesym TExpression::tok2fun(const char* tok) const
|
||||||
{
|
{
|
||||||
const int MAX_TOK = 26;
|
const int MAX_TOK = 27;
|
||||||
HIDDEN const char* fnstr[MAX_TOK] = { "ANSI", "CEIL", "COS", "EXP", "EXP10",
|
HIDDEN const char* fnstr[MAX_TOK] = { "ANSI", "CEIL", "COS", "EXP", "EXP10",
|
||||||
"IF", "LEFT", "LOG", "LOG10", "MAX",
|
"IF", "LEFT", "LEN", "LOG", "LOG10",
|
||||||
"MID", "MIN", "NUM", "PERC", "POW",
|
"MAX", "MID", "MIN", "NUM", "PERC",
|
||||||
"RIGHT", "ROUND", "SCORP", "SIN", "SQR",
|
"POW", "RIGHT", "ROUND", "SCORP", "SIN",
|
||||||
"SQRT", "STR", "SUBSTR","TAN", "TRUNC",
|
"SQR", "SQRT", "STR", "SUBSTR","TAN",
|
||||||
"UPPER"};
|
"TRUNC", "UPPER"};
|
||||||
|
|
||||||
HIDDEN TCodesym fntok[MAX_TOK] = { _ansi, _ceil, _cos, _exp, _exp10,
|
HIDDEN TCodesym fntok[MAX_TOK] = { _ansi, _ceil, _cos, _exp, _exp10,
|
||||||
_if, _left, _log, _log10, _max,
|
_if, _left, _len, _log, _log10,
|
||||||
_mid, _min, _num, _perc, _pow,
|
_max, _mid, _min, _num, _perc,
|
||||||
_right, _round, _scorp, _sin, _sqr,
|
_pow, _right, _round, _scorp, _sin,
|
||||||
_sqrt, _str, _substr, _tan, _trunc,
|
_sqr, _sqrt, _str, _substr, _tan,
|
||||||
_upper};
|
_trunc, _upper};
|
||||||
|
|
||||||
int f = 0, l = MAX_TOK-1, i = MAX_TOK/2;
|
int f = 0, l = MAX_TOK-1, i = MAX_TOK/2;
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
@ -1019,6 +1026,7 @@ TCodesym TExpression::__factor(TCodesym startsym)
|
|||||||
case _tan:
|
case _tan:
|
||||||
case _ansi:
|
case _ansi:
|
||||||
case _upper:
|
case _upper:
|
||||||
|
case _len:
|
||||||
sym = __function(1);
|
sym = __function(1);
|
||||||
_code.add(startsym);
|
_code.add(startsym);
|
||||||
break;
|
break;
|
||||||
|
@ -66,6 +66,7 @@ enum TCodesym {
|
|||||||
_perc, // @emem Calcola la percentuale
|
_perc, // @emem Calcola la percentuale
|
||||||
_scorp, // @emem Scorpora una percentuale
|
_scorp, // @emem Scorpora una percentuale
|
||||||
_substr, // @emem Estrae una sottostringa
|
_substr, // @emem Estrae una sottostringa
|
||||||
|
_len, // @emem Lunghezza di una stringa
|
||||||
} ;
|
} ;
|
||||||
// @doc INTERNAL
|
// @doc INTERNAL
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user