Search code examples
visual-c++chilkatvc90

how to implode CkStringArray like php?


is Chilkatsoft has implode function of CkStringArray if not then how can we combine all CkStringArray members and get a CkString object

CkString implode(char* key, CkStringArray* StrArray) {
    CkString rt;
    CkString tmp;
    for (int i = 0; i < StrArray->get_Length(); i++) {
        tmp.clear();
        StrArray->Pop(tmp);
        rt.append(tmp);
        if (i < (StrArray->get_Length() - 1))
            rt.append(key);
    }
    tmp.clear();
    return rt;
}

Referenced as:

CkString abc = "h|e|l|l|o";
CkStringArray* cba = abc.split('|',true,false,false);
MessageBox(NULL, (LPCSTR)implode2("-",cba).getString(), NULL, NULL);

then gives in messagebox o-l-l


Solution

  • ChilkSoft not provide implode function. use GetString instead of Pop like follows:

    CkString implode(char* key, CkStringArray* StrArray) {
        CkString rt;
        CkString tmp;
        for (int i = 0; i < StrArray->get_Length(); i++) {
            tmp.clear();
            StrArray->GetString(i, tmp);
            rt.append(tmp.getString());
            if (i < (StrArray->get_Length() - 1))
                rt.append(key);
        }
        tmp.clear();
        return rt;
    }