Ejemplo n.º 1
0
/******************************************************************************
*   Splits a comma delimited string to a List of int Vector.
*   Example string: "(10000,26623),(10000,30000)"
*******************************************************************************/
bool
ParamsManager::
splitRange(String8 const& s8Input, List< Vector<int> >& rOutput)
{
    rOutput.clear();
    //
    if  ( s8Input.isEmpty() )
    {
        MY_LOGW("empty string");
        return  false;
    }
    //
    int endIndex, fromIndex = 1;
    int endIndex_input = s8Input.length()-1;
    if  ( s8Input[0] != '(' || s8Input[endIndex_input] != ')' )
    {
        MY_LOGW("Invalid range list string=%s", s8Input.string());
        return  false;
    }
    //
    do  {
        endIndex = s8Input.find("),(", fromIndex);
        if (endIndex == -1) endIndex = endIndex_input;
        //
        Vector<int> vOut;
        String8 const s8SubString(s8Input.string()+fromIndex, endIndex-fromIndex);
        if  ( splitInt(s8SubString, vOut) ) {
            rOutput.push_back(vOut);
        }
        //
        fromIndex = endIndex + 3;
    } while (endIndex != endIndex_input);
    //
    return  (rOutput.size() > 0);
}
Ejemplo n.º 2
0
//Sonuç inputTable içinde saklanılacak
//Parametreler :
    //input : kullancı girdiği data
void createTableFromString(char *input){
    int i,j;
    int current= -2; //-2 ile başlıyoruz çünkü ilk iki sayılar tabluadışında bir sayılar
    int lastComma=-1; //-1 ile başlıyoruz çünkü ilk defa 0 olması lazım
    int len=strlen(input);
    for(i=0;i<len;i++){
        if((*(input+i)==',') || (i==len-1)){ // Virgül gördük ya da sona erdik
            if(current == -2) //Split the Width
            {
                Width=splitInt(input,lastComma+1,i);
                if(Width>MAX_COLUMNS){ //kontrol gerek yoktu, kullancıya göveniyoruz :D
                    printf("%d'den fazla sutun olmaz!",MAX_COLUMNS);
                    break;
                }
            }
            else if(current == -1) //split the Height
            {
                Height=splitInt(input,lastComma+1,i);
                if(Height>MAX_ROWS){ //kontrol gerek yoktu, kullancıya göveniyoruz :D
                    printf("%d'den fazla satir olmaz!",MAX_ROWS);
                    break;
                }
            }
            else //normal cell
            {
                int I,J;
                I=current/Width;
                J=current%Width;

                if(i==len-1)//eğer son harfa erdik ise, son harf alabilmek için i'ye 1 ekliyoruz
                    i++;

                splitChars(input,(*(inputTable+I))+J,lastComma+1,i);
            }
            lastComma=i;
            current++; //sadece virgül görduğumuz zamanda artırıyoruz onu demek ki başka bir hücre'ye gittik
        }
    }
}