フィールド名が「fieldname」の構造体がある場合、変数のみを使用してそのフィールドのデータにアクセスすることはできますか?
すなわち。
x='フィールド名'
することは可能ですか
data = struct。(x)なんらかの方法で?xの文字列をフィールド名として使用したいと思います。
フィールド名が「fieldname」の構造体がある場合、変数のみを使用してそのフィールドのデータにアクセスすることはできますか?
すなわち。
x='フィールド名'
することは可能ですか
data = struct。(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で構造ルックアップをチョークします。