18 lines
621 B
Plaintext
18 lines
621 B
Plaintext
\\ Tokenize a string str according to 1 character delimiter d. Return a list of tokens.
|
|
\\ Using ssubstr() from http://rosettacode.org/wiki/Substring#PARI.2FGP
|
|
\\ tokenize() 3/5/16 aev
|
|
tokenize(str,d)={
|
|
my(str=Str(str,d),vt=Vecsmall(str),d1=sasc(d),Lr=List(),sn=#str,v1,p1=1);
|
|
for(i=p1,sn, v1=vt[i]; if(v1==d1, listput(Lr,ssubstr(str,p1,i-p1)); p1=i+1));
|
|
return(Lr);
|
|
}
|
|
|
|
{
|
|
\\ TEST
|
|
print(" *** Testing tokenize from Version #1:");
|
|
print("1.", tokenize("Hello,How,Are,You,Today",","));
|
|
\\ BOTH 2 & 3 are NOT OK!!
|
|
print("2.",tokenize("Hello,How,Are,You,Today,",","));
|
|
print("3.",tokenize(",Hello,,How,Are,You,Today",","));
|
|
}
|