📄 dbxval.pro
字号:
function dbxval,entry,idltype,nvalues,sbyte,nbytes,bswap=bswap;+; NAME: ; DBXVAL;; PURPOSE: ; Quickly return a value of the specified item number ; EXPLANATION:; Procedure to quickly return a value of the specified item number; from the entry.;; CALLING SEQUENCE: ; result = dbxval( entry, idltype, nvalues, sbyte, nbytes );; INPUTS ; entry - entry or entries from data base (bytarr) ; idltype - idl data type (obtained with db_item_info); nvalues - number of values to return (obtained with db_item); sbyte - starting byte in the entry (obtained with db_item); nbytes - number of bytes (needed only for string type); (obtained with db_item);; OUTPUTS: ; function value is value of the specified item in entry;; KEYWORDS:; bswap - If set, then IEEE_TO_HOST is called.;; RESTRICTIONS: ; To increase speed the routine assumes that entry and item are; valid and that the data base is already opened using dbopen.;; REVISION HISTORY: ; version 0 D. Lindler Nov. 1987 (for new db format); Version 1, William Thompson, GSFC, 28 March 1994.; Incorporated into CDS library.; Version 2, Richard Schwartz, GSFC/SDAC, 23 August 1996; Allowed Entry to have 2 dimensions; Version 2.1, 22 Feb 1997, JK Feggans, ; avoid reform for strings arrays.; Version 2.2 Use overwrite with REFORM(), W. Landsman, May 1997; Converted to IDL V5.0 W. Landsman September 1997; Work for multiple-valued strings W. Landsman October 2000; Add new 64bit & unsigned integer datatypes W.Landsman July 2001; Version 3, 2-May-2003, JK Feggans/Sigma, W.T. Thompson; Added BSWAP keyword to avoid floating errors on some platforms.;-;----------------------------------------------------------------;;nentry = n_elements(entry[0,*])case idltype of ;case of data type 1: val = byte(entry[sbyte:sbyte+nvalues-1,*],0,nvalues,nentry) 2: val = fix(entry[sbyte:sbyte+nvalues*2-1,*],0,nvalues,nentry) 3: val = long(entry[sbyte:sbyte+nvalues*4-1,*],0,nvalues,nentry) 4: val = float(entry[sbyte:sbyte+nvalues*4-1,*],0,nvalues,nentry) 5: val = double(entry[sbyte:sbyte+nvalues*8-1,*],0,nvalues,nentry) 7: val = string( reform( entry[sbyte:sbyte+nbytes-1,*], nbytes/nvalues, $ nvalues, nentry)) 12: val = uint(entry[sbyte:sbyte+nvalues*2-1,*],0,nvalues,nentry) 13: val = ulong(entry[sbyte:sbyte+nvalues*4-1,*],0,nvalues,nentry) 14: val = long64(entry[sbyte:sbyte+nvalues*8-1,*],0,nvalues,nentry) 15: val = ulong64(entry[sbyte:sbyte+nvalues*8-1,*],0,nvalues,nentry)endcase;if keyword_set(bswap) then ieee_to_host,val,idltype=idltypeif ( nvalues EQ 1 and nentry EQ 1) then return,val[0] else $ if idltype eq 7 then return,val else return,reform(val,/overwrite)end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -