Да, это возможно с помощью функции 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.