Example #1
0
int main(int argc,char*argv[])
{
    K flip,result,columnNames,columnData;

    int row,col,nCols,nRows;
	int handle=khpu("localhost",1234,"user:password");
    if(handle<0) exit(1);
	result = k(handle,"`asc",(K)0);
	std::string str = "([]a:til 10;b:reverse til 10;c:10#01010101010b;d:`a)";
	result = k(handle,str.c_str(),(K)0);
    if(!result) printf("Network Error\n"),perror("Network"),exit(1);
    if(result->t==-128) printf("Server Error %s\n",result->s),kclose(handle),exit(1);
//    kclose(handle);
    if(result->t!=99&&result->t!=98) 
	{
		printf("type %d\n",result->t);
		r0(result);
		exit(1);
	}
    flip = ktd(result); // if keyed table, unkey it. ktd decrements ref count of arg.
    // table (flip) is column names!list of columns (data)
    columnNames = kK(flip->k)[0];
    columnData = kK(flip->k)[1];
    nCols = columnNames->n;
    nRows = kK(columnData)[0]->n;
    for(row=0;row<nRows;row++)
    {
        if(0==row)
        {
            for(col=0;col<nCols;col++)
            {   
                if(col>0)printf(",");
                printf("%s",kS(columnNames)[col]);
            }
            printf("\n");
        }
        for(col=0;col<nCols;col++)
        {
            K obj=kK(columnData)[col];

            if(col>0)printf(",");
            switch(obj->t)
            {
                case(1):{printf("%d",kG(obj)[row]);}break;
                case(4):{printf("%d",kG(obj)[row]);}break;
                case(5):{printf("%d",kH(obj)[row]);}break;
                case(6):{printf("%d",kI(obj)[row]);}break;
                case(7):{printf("%lld",kJ(obj)[row]);}break;
                case(8):{printf("%f",kE(obj)[row]);}break;
                case(9):{printf("%f",kF(obj)[row]);}break;
                case(11):{printf("%s",kS(obj)[row]);}break;
                default:{printf("unknown type");}break;
            }
        }
        printf("\n");
    }
    r0(flip);
    return 0;
}
Example #2
0
static K printtable(K x)
{
    K flip = ktd(x);
    K columns = kK(flip->k)[0];
    K rows = kK(flip->k)[1];
    
    int colcount = columns->n;
    int rowcount = kK(rows)[0]->n;
    
    for (int i = 0; i < colcount; i++)
        printf("%s\t", kS(columns)[i]);
    printf("\n");
    
    for (int i = 0; i < rowcount; i++) {
        for (int j = 0; j < colcount; j++) {
            printitem(kK(rows)[j], i);
            printf("\t");
        }
        printf("\n");
    }
    
    return (K) 0;
}
Example #3
0
static 
PyObject* from_dictionary_kobject(K x){
     PyObject *result;
     PyObject* keys;
     PyObject* vals;
     K table;
     Py_ssize_t i, length ;

     if(98 == xx->t && 98 == xy->t) {
	  r1(x);
	  if(table = ktd(x)) {
	       result = from_table_kobject(table);
	       r0(table);
	       return result;
	  }
     }

     result = PyDict_New();
     length = (Py_ssize_t)(xx->n);
     keys = from_any_kobject(xx);
     vals = from_any_kobject(xy);

     if( PyList_CheckExact(keys)) {
	  for(i=0; i!= length; ++i) {
	       PyDict_SetItem(result, PyList_GetItem(keys, i), PyList_GetItem(vals, i)) ;
	  }
     }
     else {
	  PyDict_SetItem(result, keys, vals);
     }
	
     Py_DECREF(keys);
     Py_DECREF(vals);
	
     return result;
}