用X++实现有规律分割的长字符串,分别提取(如逗号隔开)

 

/***X++实现有规律分割的长字符串,分别提取(如逗号隔开)*/

Job Test

static void xyf_ProcessLongStr_set(Args _args)

{

    YAM_ProcessLongStr  st = new YAM_ProcessLongStr();

    setIterator         setIt; //set会自动排序和去除冗余字符串

    ListIterator        ListIt;//list同理,只是list不会去除字符串冗余和不会自动排序

    str s = 'd,te,ut,o,w,q';

 

;    /**

    要拆分的分隔符为逗号,即可容许各种有规律的分隔符

    默认为""

    */

    st.ProcessMulitSet(s,',');

    setIt = new setIterator(st.parmSet());

    while(setIt.more())

    {

        print setIt.value();

        setIt.next();

    }

    print st.parmSet().toString();

    pause;

}

Class (Function)

class YAM_ProcessLongStr

{

    Set         _set;

    List        _list;

}

/**********************************************/

void ProcessMulitList(csm_text   _str,

                      str 10     _flag = ','

                      )

{

    int              CountLine=0,long;

    CSM_Text         _Sid,next_Sid,longIdx;

    str              DateIdx;

;

    _list     = new list(types::String);

 

    _Sid    = strRem(_str,"/n");

    _Sid    = strRem(_Sid,"/r");

    longIdx = _Sid;

 

    while(StrFind(_Sid,_flag,1,30)!=0)

    {

        long        = strFind(_Sid,_flag,1,30);

        DateIdx     = substr(_Sid,1,long-1);

        _list.addEnd(DateIdx);

        next_Sid    = substr(_Sid,long+1,strlen(longIdx)-long);

        _Sid        = strltrim(next_Sid);

        long =0;

    }

    _list.addEnd(_Sid) ;

}

/**********************************************/

void ProcessMulitSet(CSM_text   _str ,

                     str  10    _flag =  ','

                     )

{

    int            CountLine=0,long;

    CSM_Text       _Sid,next_Sid,longIdx;

    str            DateIdx;

;

    _set     = new set(types::String);

 

    _Sid    = strRem(_str,"/n");

    _Sid    = strRem(_Sid,"/r");

    longIdx = _Sid;

 

    while(StrFind(_Sid,_flag,1,30)!=0)

    {

        long        = strFind(_Sid,_flag,1,30);

        DateIdx     = substr(_Sid,1,long-1);

        _set.add(DateIdx);

        next_Sid    = substr(_Sid,long+1,strlen(longIdx)-long);

        _Sid        = strltrim(next_Sid);

        long =0;

    }

    _set.add(_Sid) ;

}

/**********************************************/

list parmList()

{

;

    return  _list;

}

/**********************************************/

set parmSet()

{

;

    return  _set;

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fandyx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值