在数据集中获取多个属性的名称和值
Posted
技术标签:
【中文标题】在数据集中获取多个属性的名称和值【英文标题】:Get more than an attribute's name and value in a dataset 【发布时间】:2017-01-13 08:59:55 【问题描述】:我在 hdf5 文件中有一个数据集,它有 4 个属性。 4 attributes with string type
如何获取每个属性名称及其值?我只知道如何通过网站“ function website”中的int H5Aget_num_attrs( hid_t loc_id )
函数要求属性号
但我不知道如何通过函数将属性名称添加到数组中。
有什么想法吗?祝你好运!
【问题讨论】:
这个问题无法理解。您应该问一个特定的问题,例如:我正在尝试从文件中读取一些属性,但sscanf()
失败。并发布代码,以便其他人可以尝试帮助您。
【参考方案1】:
编辑:哦,你想要一个属性的名称吗?
你不能这样做。
~鳍~
编辑 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;
【讨论】:
【参考方案2】:您可以像这样检索存储在数据集中的 (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
【讨论】:
以上是关于在数据集中获取多个属性的名称和值的主要内容,如果未能解决你的问题,请参考以下文章
如何使用数据集在 C# 或 dotnet 中查找主键列名称?
源数据集中的动态工作表名称:Azure 数据工厂上的(Excel(Blob 存储))。 - 错误:请为您的数据集选择一个工作表