获取的不仅仅是数据集中属性的名称和值

时间:2016-09-06 02:48:18

标签: c hdf5

我在hdf5文件中有一个有4个属性的数据集。 4 attributes with string type

如何获取每个属性名称及其值?我只知道如何通过网站“ function website”中的函数int H5Aget_num_attrs( hid_t loc_id )来要求属性编号

但我不知道如何通过函数将属性命名为数组。

任何想法?祝福!

2 个答案:

答案 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
}