📄 dbget.pro
字号:
function dbget,item,values,listin,SILENT=silent, FULLSTRING = fullstring, $ Count = count;+; NAME:; DBGET; PURPOSE:; Find entry numbers which contain specified values of a given item.; EXPLANATION:; DBGET() is useful as an alternative to DBFIND() when the desired ; search values are not easily expressed as a string. ;; CALLING SEQUENCE:; list = dbget( item, values, [ listin ], /SILENT, /FULLSTRING );; INPUTS:; item - Item name or number; values - scalar or vector containing item values to search for.;; OPTIONAL INPUTS:; listin - list of entries to be searched. If not supplied, or; set to -1, then all entries are searched;; OUTPUT:; list - vector giving the entry number of entries containing desired; item values. The number of elements in LIST may be different ; from that of VALUE, since a value might be located zero, once, ; or many times in the database. Use the function DBMATCH if a ; one to one correspondence is desired between VALUES and LIST. ; OPTIONAL INPUT KEYWORDS:; /SILENT - If this keyword is set, then DBGET will not display; the number of entries found; /FULLSTRING - By default, one has a match if a search string is ; included in any part of a database value (substring match). ; But if /FULLSTRING is set, then all characters in the database; value must match the search string (excluding leading and ; trailing blanks). Both types of string searches are case; insensitive.; OPTIONAL OUTPUT KEYWORD:; COUNT - Integer scalar giving the number of valid matches;; RESTRICTIONS:; When linked databases are opened together, DBGET can only be used to; search on items in the primary database.; EXAMPLE:; Get info on selected HD stars in Bright Star catalogue;; IDL> dbopen, 'YALE_BS' ; IDL> hdno = [1141,2363,3574,4128,6192,6314,6668] ;Desired HD numbers; IDL> list = dbget( 'HD', hdno ) ;Get corresponding entry numbers;; SYSTEM VARIABLES:; The obsolete system variable !ERR is set to number of entries found; REVISION HISTORY:; Written, W. Landsman STX February, 1989; William Thompson, GSFC, 14 March 1995 Added keyword FULLSTRING; Converted to IDL V5.0 W. Landsman September 1997; Added COUNT keyword, deprecate !ERR W. Landsman March 2000; Fix bug introduced March 2000 W. Landsman November 2000; Fix possible bug when sublist supplied W. Landsman August 2008;-; On_error,2 ;Return to caller compile_opt idl2 if N_params() LT 2 then begin print,'Syntax -- list = ' + $ 'DBGET( item, values, [listin, /SILENT, /FULLSTRING, Count=]' return,-1 endif if N_params() LT 3 then listin = lonarr(1)-1 nvals = N_elements(values) if nvals EQ 0 then message,'No search values supplied' db_item, item, itnum index = db_item_info( 'INDEX', itnum) list = listin if nvals EQ 1 then val = [values,values] $ ;Need at least 2 elements else val = values if index[0] GE 2 then begin ;Sorted item if N_elements(list) EQ 1 then list = lonarr(1) + list dbfind_sort, itnum[0], nvals, val, list, $ FULLSTRING = fullstring, Count =count endif else begin ;Non-sorted item dbext, list, itnum, itvals dbsearch, nvals, val, itvals, good, FULLSTRING = fullstring, Count = count if count GT 0 then $ ;Updated Aug 2008 if list[0] NE -1 then list = list[good] else list = good+1 endelse if count LE 0 then begin if not keyword_set(SILENT) then $ print, 'No entries found by DBGET in ' + db_info( 'NAME',0 ) list = intarr(1) endif else if not keyword_set( SILENT ) then $ print,count,' entries found in '+db_info('name',0) return, list[ sort(list) ] end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -