描述符分割的算法实现

测试代码:

CDesCArray * descArray= new (ELeave) CDesCArrayFlat(2);

   
SplitDesL(*descArray, _L(",,ab,cde,f,,,g,hij,klmn,opq,rs,tuv,wxy,z,,,"), _L(","));
结果:
descArray = {"ab","cde","f","g","hij","klmn","opq","rs","tuv","wxy","z"};

SplitDesL(*descArray, _L(",,,,,,"), _L(","));
结果:
descArray = {}

SplitDesL(*descArray, _L("abcde"), _L(","));
结果:
descArray = {"abcde"}

/**
 *
 * aArray
 * aDesc
 * aSeparator
 */
TInt SplitDesL(CDesCArray  &aArray, const TDesC &aDesc, const TDesC &aSeparator )
    {
    aArray.Reset();
   
    TInt index = 0;
    TPtrC fathPtr(aDesc);
    index = fathPtr.Find(aSeparator);
   
    while(index != KErrNotFound)
        {
        if( index > 0 )
            {
            /*
            TBuf<100> buf;
            buf = fathPtr.Mid(0, index);
            RDebug::Print(_L("-----sonPtr /"%S/""), &buf);
            //*/
            aArray.AppendL(fathPtr.Mid(0, index));
            }
        fathPtr.Set( fathPtr.Mid( index + aSeparator.Length() ) );
        //RDebug::Print(_L("-----fathPtr: /"%S/""), &fathPtr);
       
        index = fathPtr.Find(aSeparator);
        }
   
    //RDebug::Print(_L("-----fathPtr: /"%S/""), &fathPtr);
    if(fathPtr.Length() > 0)
        aArray.AppendL( fathPtr );
   
    return aArray.MdcaCount();
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值