2010-05-10 88 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 。

相關問題