2010-05-10 3 views
5

필드 이름이 'fieldname'인 구조체가있는 경우 변수 만 사용하여 해당 필드의 데이터에 액세스 할 수 있습니까?IDL : 변수에 저장된 필드 이름을 사용하여 구조체 필드에 액세스합니까?

즉.

X = '필드 명'

그것은

= 데이터 구조체를 수행 할 수있다. (x)는 어떤 방법으로? 필드 이름으로 x의 문자열을 사용하고 싶습니다.

+1

다른 IDL 프로그래머를 만나서 반갑습니다! 어쩌면 언젠가 우리는 그 CORBA 프로그래머들로부터 '우리의'태그를 되 찾을 수 있습니다 .... –

답변

7

예, 이것은 TAG_NAMES 기능을 사용할 수 있습니다 :

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

TAG_NAMES에 대한 호출은 struct에 정의 된 태그를 나타내는 문자열의 배열을 반환합니다. WHERE 문은 'fieldname'과 일치하는 tnames의 색인을 반환합니다. 마지막으로 struct.(tindex) 연산에 인덱스가 전달됩니다.이 연산은 숫자 태그 인덱스로 필드를 추출합니다. 당신이 tindex가 성공적으로 뭔가 일치되었는지 여부를 검사 할 것 실제 응용 프로그램에서 물론

, 그렇지 않으면 IDL 인덱스 -1 와 구조 조회에 질식 것입니다.

관련 문제