IDL:変数に保存されているフィールド名を使用して、構造体のフィールドにアクセスしますか?
-
25-09-2019 - |
質問
私はフィールド名「フィールド名」を持つ構造体を持っている場合は、
は、それが唯一の変数を使用して、そのフィールド内のデータにアクセスすることは可能でしょうか?
すなわちます。
X = 'フィールド名'
が行うには、それが可能である。
データ=構造体。(x)は何らかの方法で?私は、フィールド名としてX内の文字列を使用したいです。
解決
はい、これは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ます。
所属していません StackOverflow