Tokenize a string: Difference between revisions

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

edits