Frage

Wenn ich eine Struktur mit einem Feldnamen ‚Feldnamen‘ habe, ist es möglich, die Daten in diesem Bereich nur die Variable zugreifen?

dh.

x = 'Feldname'

ist es möglich, zu tun

data = struct. (X) in irgendeiner Weise? Ich möchte die Zeichenfolge in x als Feldnamen verwenden.

War es hilfreich?

Lösung

Ja, das ist möglich mit der TAG_NAMES Funktion:

tnames=TAG_NAMES(struct)
tindex=WHERE(STRCMP(tnames,'fieldname') EQ 1)
data=struct.(tindex)

Der Aufruf von TAG_NAMES gibt ein Array von Strings, die die in struct definierten Tags. Die WHERE Anweisung gibt den Index in tnames eines String-Matching 'fieldname'. Schließlich wird der Index zu der struct.(tindex) Operation übergeben, die ein Feld Extrakt durch sein numerischer Tag-Index.

Natürlich in einer realen Anwendung würden Sie überprüfen möchten, ob tindex erfolgreich war sonst wird ersticken IDL auf der Struktur-Lookup mit einem Index angepasst, um etwas, von -1.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top