IDL:使用存储在变量中的字段名来访问struct字段?

时间:2010-05-10 20:05:37

标签: struct idl-programming-language

如果我有一个带有字段名'fieldname'的结构,是否可以仅使用变量来访问该字段中的数据?

x ='fieldname'

可以吗

data = struct。(x)以某种方式?我想在x中使用字符串作为字段名称。

1 个答案:

答案 0 :(得分:7)

是的,可以使用TAG_NAMES功能:

tnames=TAG_NAMES(struct)
tindex=WHERE(STRCMP(tnames,'fieldname') EQ 1)
data=struct.(tindex)

TAG_NAMES的调用返回表示struct中定义的标记的字符串数组。 WHERE语句返回匹配tnames的字符串'fieldname'中的索引。 最后,索引被传递给struct.(tindex)操作,该操作通过提取字段 它的数字标签索引。

当然,在实际的应用程序中,您需要检查tindex是否成功 匹配到某些东西,否则IDL将使用索引阻止结构查找 -1。