我在hdf5文件中有一个有4个属性的数据集。 4 attributes with string type
如何获取每个属性名称及其值?我只知道如何通过网站“ function website”中的函数int H5Aget_num_attrs( hid_t loc_id )
来要求属性编号
但我不知道如何通过函数将属性命名为数组。
任何想法?祝福!
答案 0 :(得分:1)
编辑:哦,您想要一个属性的名称吗?
你做不到。
~Fin~
编辑2:这是因为某些函数xyzzy(sometype_t)
只能传递一种类型 - 因此您知道调用哪些属性。
我将尝试找出你的问题 如果英语不是你的第一语言,没有难过的感觉。否则,请拜托,请编辑您的问题。
反正
typedef struct {
int a, b, c, d; /* four attributes.*/
} foo_t;
foo_t bar;
获取属性:
bar.a = 1;
bar.b = 2;
bar.c = 3;
bar.d = 4;
如果你有指针......
foo_t * baz = &bar /* baz is a pointer to bar. */
baz->a = 42;
答案 1 :(得分:0)
您可以检索存储在这样的数据集中的(4)属性的名称和相应的值(在C中使用HDFql - http://www.hdfql.com):
char script[1024];
HDFQL_CURSOR my_cursor; // declare cursor named "my_cursor"
hdfql_initialize(&my_cursor); // initialize cursor "my_cursor"
hdfql_execute("USE FILE my_example.h5"); // use (i.e. open) HDF file named "my_example.h5"
hdfql_execute("SHOW my_dataset/"); // retrieve all (4) attributes stored in dataset "my_dataset"
while (hdfql_cursor_next(NULL) == HDFQL_SUCCESS) // loop through all attributes retrieved
{
sprintf(script, "SELECT FROM my_dataset/%s", hdfql_cursor_get_char(NULL)); // prepare script to select (i.e. read) the content of the attribute
hdfql_cursor_use(&my_cursor);
hdfql_execute(script); // execute script
hdfql_cursor_next(NULL);
hdfql_cursor_use_default();
printf("Attribute '%s' contains '%s'\n", hdfql_cursor_get_char(NULL), hdfql_cursor_get_char(&my_cursor)); // print the attribute name and its value
}