2017-01-22 3 views
-3

Например, если таблица tbl_trade_jan17, как я могу получить строковую переменную "tbl_trade_jan17"? Боюсь, я мог бы пропустить что-то очень очевидное здесь! Мотив не использовать get или eval или таблицу вызовов от ее имени - функциональный. Идея состоит в том, чтобы сохранить таблицу на жестком диске с тем же именем файла, что и имя таблицы. Также ссылаться на связанные таблицы. например, trd_jan17 может также иметь таблицу quote_jan17 и связанную таблицу sym_jan17. поэтому, если я могу получить имя tbl_trade_jan17, я могу получить имена связанных таблиц с помощью манипуляций строк.Как получить имя таблицы в виде строки в kdb +

ответ

0

Идея заключается в том, чтобы сохранить таблицу на жестком диске с тем же именем, что и имя таблицы.

Чтобы получить список таблиц, определенных, используйте tables

например

tables`. //for the root name-space 

можно фильтровать с like

например

t:tables`. 
t:t where t like "pattern_*" 

, а затем сохранить с save

save each hsym t //careful 
0

string Использование функции

q) string `tbl_trade_jan17 
    "tbl_trade_jan17" 
+0

уточнить, мне нужно без обратной кавычки ака 'строка tbl', я знал, как преобразовать символ в строку –

+0

Не уверен, если я понимаю, что вы просите - можете ли вы предоставить более подробную информацию о том, что вы пытаетесь сделать? – MdSalih

1

EDIT: Вопрос выше изменил

Поправьте меня, если я ошибаюсь, но мне кажется, что вы хотите быть в состоянии назвать таблицу из строки «tbl_trade_jan17»? В этом случае get и value являются взаимозаменяемыми для этой цели.

q)tbl_trade_jan17:([]c:1 2 3;c2:1 2 3) 
q)type tbl_trade_jan17/tbl_trade_jan17 is a table (type 98h) 
98h 
q)/ to use the string as a variable to retrieve the table: 
q)get "tbl_trade_jan17" 
c c2 
---- 
1 1 
2 2 
3 3 
q)value "tbl_trade_jan17" 
c c2 
---- 
1 1 
2 2 
3 3 
Смежные вопросы