/****************************************************************************** * 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); }
//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 } } }