//把字符串S,按照sFlag进行分隔,返回一个数组
TStringList* splitStr(AnsiString S,AnsiString sFlag)
{
TStringList *ls= new TStringList();
//AnsiString* s="2023/12/2 12:12:12|ymdy" ;
int i;
do{
i=S.AnsiPos(sFlag);
if(i>0){
AnsiString s= S.SubString0(0,i-1);
ls->Add(s);
//下一行SubString(i,len)有个坑:在windows系统中,从1开始,在android中,从0开始。
//用SubString0似乎可以解决,但SubString0不能复合运算如 S=S.SubString0(0,2)+"ss"会出错。
//要写成 S=S.SubString0(0,2);S+="ss";
//也不能将其当作变量,如ls->Add(S.SubString0(0,2))将出错,要写成
//S=S.SubString0(0,2);ls->Add(S);
//S = S.SubString(i,S.Length()-i);这是错的。
//S = S.SubString0(i+sFlag.Length()-1,S.Length()-i-sFlag.Length()+1);
S=StringReplace(S,s+sFlag,"",TReplaceFlags()<<rfIgnoreCase);
}else{
ls->Add(S);
}
}while(i>0);
return ls;
}
//---------------------------------------------------------------------------