⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tag_exist.pro

📁 basic median filter simulation
💻 PRO
字号:
;+; NAME:        ;       TAG_EXIST(); PURPOSE:              ;       To test whether a tag name exists in a structure.; EXPLANATION:               ;       Routine obtains a list of tagnames and tests whether the requested one;       exists or not. The search is recursive so if any tag names in the ;       structure are themselves structures the search drops down to that level.;       (However, see the keyword TOP_LEVEL).;               ; CALLING SEQUENCE: ;       status = TAG_EXIST(str, tag, [ INDEX =, /TOP_LEVEL, /QUIET ] );    ; INPUT PARAMETERS:     ;       str  -  structure variable to search;       tag  -  tag name to search for, scalar string;; OUTPUTS:;       Function returns 1b if tag name exists or 0b if it does not.;                              ; OPTIONAL INPUT KEYWORD:;       /TOP_LEVEL = If set, then only the top level of the structure is;                           searched.;       /QUIET - if set, then do not print messages if invalid parameters given;       /RECURSE - does nothing but kept for compatibility with the;                  Solarsoft version for which recursion is not the default ;        http://sohowww.nascom.nasa.gov/solarsoft/gen/idl/struct/tag_exist.pro; OPTIONAL OUTPUT KEYWORD:;       INDEX = index of matching tag, scalar longward, -1 if tag name does;               not exist;; EXAMPLE:;       Determine if the tag 'THICK' is in the !P system variable;       ;       IDL> print,tag_exist(!P,'THICK');; PROCEDURE CALLS:;       None.;; MODIFICATION HISTORY:     : ;       Written,       C D Pike, RAL, 18-May-94               ;       Passed out index of matching tag,  D Zarro, ARC/GSFC, 27-Jan-95     ;       William Thompson, GSFC, 6 March 1996    Added keyword TOP_LEVEL;       Zarro, GSFC, 1 August 1996    Added call to help ;       Use SIZE(/TNAME) rather than DATATYPE()  W. Landsman  October 2001;       Added /RECURSE and /QUIET for compatibility with Solarsoft version;                W. Landsman  March 2009;-            function tag_exist, str, tag,index=index, top_level=top_level,recurse=recurse, $         quiet=quiet;;  check quantity of input;if n_params() lt 2 then begin   print,'Use:  status = tag_exist(structure, tag_name)'   return,0bendif;;  check quality of input;if size(str,/TNAME) ne 'STRUCT' or size(tag,/TNAME) ne 'STRING' then begin if not keyword_set(quiet) then begin    if size(str,/TNAME) ne 'STRUCT' then help,str   if size(tag,/TNAME) ne 'STRING' then help,tag   print,'Use: status = tag_exist(str, tag)'   print,'str = structure variable'   print,'tag = string variable'  endif    return,0bendifi=-1tn = tag_names(str)nt = where(tn eq strupcase(tag)) & index=nt[0]if nt[0] eq -1 then begin   status = 0b   if not keyword_set(top_level) then begin      for i=0,n_elements(tn)-1 do begin        if size(str.(i),/TNAME) eq 'STRUCT' then $                status=tag_exist(str.(i),tag,index=index)        if status eq 1b then return,status      endfor   endif   return,0bendif else begin   return,1bendelseend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -