有没有办法获得 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)
用 kdb 做 io 有很多更好的方法。
例如,您可以使用 csv 存储表格:
save `:table.csv
或返回表:
http://host:port/q.csv?table
有关 C/C++ 集成的更多信息,请参阅http://code.kx.com/q/interfaces/using-c-functions/
.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)"
我在 KDB+ 的 C 接口上做了一些工作。它涉及使用 C 打印和创建 KDB+ 对象。
它在 C++ 中可能有点不同,但它应该是你的起点?
希望这可以帮助。