1

有没有办法获得 k 对象的字符串表示,类似于(更好地相同)打印到 q 控制台?

q)([]a:`a`b`c;b:"abc";c:1 2 3)
a b c
-----
a a 1
b b 2
c c 3
q)
4

3 回答 3

1

用 kdb 做 io 有很多更好的方法。

例如,您可以使用 csv 存储表格:

save `:table.csv

或返回表:

http://host:port/q.csv?table

有关 C/C++ 集成的更多信息,请参阅http://code.kx.com/q/interfaces/using-c-functions/

于 2014-04-04T18:08:36.310 回答
1

.Q.s用于格式化控制台打印的东西,可以使用它来获取 q 控制台字符串。

q)t:([]a:`a`b`c;b:"abc";c:1 2 3)
q)show .Q.s t
    "a b c\n-----\na a 1\nb b 2\nc c 3\n"
q)t:([]a:`a`b`c;b:"abc";c:1 2 3)
q)show str:.Q.s t
    "a b c\n-----\na a 1\nb b 2\nc c 3\n"
q)-1 str;
    a b c
    -----
    a a 1
    b b 2
    c c 3

.Q.s1可用于获取字符串的单行版本。

q).Q.s1 t
   "+`a`b`c!(`a`b`c;\"abc\";1 2 3)"
于 2014-04-05T05:43:41.147 回答
0

我在 KDB+ 的 C 接口上做了一些工作。它涉及使用 C 打印和创建 KDB+ 对象。

http://code.kx.com/wsvn/code/contrib/aquaqanalytics/InterfacingKDBtoC/?#ab109deb48fbdcebdc610ae05c54e9ede

它在 C++ 中可能有点不同,但它应该是你的起点?

希望这可以帮助。

于 2014-04-07T08:14:46.207 回答