IDL:変数に保存されているフィールド名を使用して、構造体のフィールドにアクセスしますか?

StackOverflow https://stackoverflow.com/questions/2806058

  •  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ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top