Tokenize a string: Difference between revisions

Content added Content deleted
mNo edit summary
mNo edit summary
Line 3,579: Line 3,579:
{","}toksep // set a new token separator
{","}toksep // set a new token separator
{"String: ",s}strtoutf8
{"String: ",s}
{"\nArray:\n",aS},
{"\nArray:\n",aS},
{"\nSize="}size(aS),println // "size" return an array: {dims,#rows,#cols,#pages}
{"\nSize="}size(aS),println // "size" return an array: {dims,#rows,#cols,#pages}
Line 3,597: Line 3,597:
.locals
.locals
splitdate(_DATETIME_)
splitdate(_DATETIME_)
_V1_="", _V2_="",
_SEP_=0,gettoksep,mov(_SEP_) // "gettoksep" return actual token separator
_SEP_=0,gettoksep,mov(_SEP_) // "gettoksep" return actual token separator
{","}toksep, // set a new token separator
{","}toksep, // set a new token separator
_NEWARRAY_={}
{1},$( _DATETIME_ ), mov(_V1_),
{2},$( _DATETIME_ ), mov(_V2_),
{1},$( _DATETIME_ ),
{2},$( _DATETIME_ ),pushall(_NEWARRAY_)
{_SEP_}toksep // restore old token separator
{_SEP_}toksep // restore ols token separator
_NEWARRAY_={},{_V1_,_V2_},pushall(_NEWARRAY_)
{_NEWARRAY_}
{_NEWARRAY_}
back
back
Line 3,611: Line 3,610:
{_X_},trunc,mov(part_int),
{_X_},trunc,mov(part_int),
{_X_},minus(part_int),xtostr,
{_X_},minus(part_int),xtostr,
mov(part_dec),part_dec+=2,{part_dec}xtonum,mov(part_dec)
mov(part_dec),part_dec+=2, // "part_dec+=2", delete "0." from "part_dec"
{part_dec}xtonum,mov(part_dec)
_NEWARRAY_={},{part_int,part_dec},pushall(_NEWARRAY_)
_NEWARRAY_={},{part_int,part_dec},pushall(_NEWARRAY_)
{_NEWARRAY_}
{_NEWARRAY_}
Line 3,618: Line 3,618:
split(_S_,_T_)
split(_S_,_T_)
_NEWARRAY_={},_VAR1_=0,_SEP_=0,gettoksep,mov(_SEP_)
_NEWARRAY_={},_VAR1_=0,_SEP_=0,gettoksep,mov(_SEP_)
{_T_}toksep,totaltoken(_S_), mov(_VAR1_), _VAR2_=1,
{_T_}toksep,totaltoken(_S_),
mov(_VAR1_), // for total tokens
_VAR2_=1, // for real position of tokens into the string
___SPLIT_ITER:
___SPLIT_ITER:
{_VAR2_}$( _S_ ),push(_NEWARRAY_)
{_VAR2_}$( _S_ ),push(_NEWARRAY_)
++_VAR2_,--_VAR1_
++_VAR2_,--_VAR1_
{ _VAR1_ },jnz(___SPLIT_ITER)
{ _VAR1_ },jnz(___SPLIT_ITER) // jump to "___SPLIT_ITER" if "_VAR1_" is not zero.
clear(_VAR2_),clear(_VAR1_)
clear(_VAR2_),clear(_VAR1_)
{_SEP_}toksep
{_SEP_}toksep