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; }
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; }
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; }