pro dbext,list,items,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12 ; ;***************************************************************** On_error,2 if N_params() lt 3 then begin print,'Syntax - dbext, list, items, v1, [ v2, v3....v12 ] return endif zparcheck,'DBEXT',list,1,[1,2,3,4,5],[0,1],'Entry List' db_item,items,it,ivalnum,idltype,sbyte,numvals,nbytes nitems = N_elements(it) nentries = db_info('entries') if max(list) GT nentries[0] then begin message,db_info('name',0)+' entry numbers must be between 1 and ' + $ strtrim(nentries[0],2),/cont good=where(list le nentries,count) if count gt 0 then list=list[good] endif if nitems GT N_params()-2 then $ message,'Insufficient output variables supplied' if nitems LT N_params()-2 then message, /INF, $ 'WARNING - More output variables supplied than items specified' ; get item info. dbno = db_item_info('dbnumber',it) if max(dbno) eq 0 then dbno=0 $ ;flag that it is first db only else dbno=-1 index = db_item_info('index',it) ind = where( (index ge 1) and (index ne 3), Nindex ) if (Nindex eq nitems) and (dbno eq 0) then begin ;All indexed items? if N_elements(list) eq 1 then list = lonarr(1) + list for i=0,nitems - 1 do begin ;Get indexed items itind = it[ind[i]] test = execute('dbext_ind,list,itind,dbno,v' + strtrim(ind[i]+1,2)) endfor endif else begin nvalues = db_item_info('nvalues',it) dbext_dbf,list,dbno,sbyte,nbytes*nvalues,idltype,nvalues, $ v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12 endelse return end ;------------------------------------------------------------------------------ ;-- run this program to load special debug versions of dbext and dbupdate