5

フィールド名が「fieldname」の構造体がある場合、変数のみを使用してそのフィールドのデータにアクセスすることはできますか?

すなわち。

x='フィールド名'

することは可能ですか

data = struct。(x)なんらかの方法で?xの文字列をフィールド名として使用したいと思います。

4

1 に答える 1

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で構造ルックアップをチョークします。

于 2010-05-10T22:10:28.080 に答える