2010-05-10 154 views
5

如果我有一个字段名'fieldname'的结构,是否有可能只使用变量访问该字段中的数据?IDL:使用存储在变量中的字段名称访问结构字段?

即。

X = '字段名'

是有可能做

数据=结构(X)。在某些方面?我想使用x中的字符串作为字段名称。

+1

很高兴看到另一个IDL程序员!也许有一天我们可以从那些CORBA程序员那里收回'我们'的标签.... – 2010-05-10 22:16:42

回答

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 。

相关问题