diff options
Diffstat (limited to 'noao/digiphot/ptools/pdump.cl')
-rw-r--r-- | noao/digiphot/ptools/pdump.cl | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/noao/digiphot/ptools/pdump.cl b/noao/digiphot/ptools/pdump.cl new file mode 100644 index 00000000..5ac4b5fd --- /dev/null +++ b/noao/digiphot/ptools/pdump.cl @@ -0,0 +1,83 @@ +# PDUMP - Select fields from an ST table or an APPHOT/DAOPHOT text file +# and dump to a text file. + +procedure pdump (infiles, fields, expr) + +string infiles {prompt="Input apphot/daophot databases(s)"} +string fields {prompt="Fields to be extracted"} +string expr {"yes", prompt="Boolean expression"} +bool headers {no, prompt="Print field headers?"} +bool parameters {yes, prompt="Print parameters?"} + +struct *inlist + +begin + # Local variable declarations. + file tmpin, texpr + int nin, tpagwidth + string in, col, inname, hfile, pfile + + # Cache the istable parameters. + cache ("istable") + + # Get the positional parameters. + in = infiles + col = fields + texpr = expr + + # Make temporary names. + tmpin = mktemp ("tmp$") + + # Expand the file list names. + files (in, sort=no, > tmpin) + + # Compute the length of the input list. + inlist = tmpin + for (nin = 0; fscan (inlist, inname) != EOF; nin = nin + 1) + ; + inlist = "" + + # Delete the temporary files. + delete (tmpin, ver-, >& "dev$null") + + # Expand the file list names. + files (in, sort=no, > tmpin) + + if (headers) { + hfile = "STDOUT" + if (parameters) + pfile = "STDOUT" + else + pfile = "" + } else { + hfile = "" + pfile = "" + } + + # Loop over each file in the input list selecting records. + inlist = tmpin + while (fscan (inlist, inname) != EOF) { + istable (inname) + if (istable.table) { + + # Adjust pagination for TDUMP. + #tpagwidth = tdump.pwidth.p_max + tdump.pwidth.p_max = 1023 + + tbdump (inname, col, texpr, cdfile=hfile, pfile=pfile, + datafile="STDOUT", rows="-", pagwidth=1023) + + # Reset pagination for TDUMP. + #tdump.pwidth.p_max = tpagwidth + + } else if (istable.text) { + txdump (inname, col, texpr, headers=headers, + parameters=parameters) + } else { + print ("ERROR: Cannot run PDUMP on file: " // inname) + } + } + + delete (tmpin, ver-, >& "dev$null") + inlist = "" +end |