cspice_ekbseg |
|||

## AbstractCSPICE_EKBSEG starts/initializes a new segment in an EK file. For important details concerning this module's function, please refer to the CSPICE routine ekbseg_c. ## I/OGiven: handle the scalar integer handle of an EK file open for write access tabnam the scalar string holding the table name for the current segment, with the string no longer than SPICE_EK_TNAMSZ (see SpiceEK.h) ncols the scalar integer holding the count of columns in the new segment; 'cnames' and 'decls' must have ncols members cnames an array of strings with dimension no larger than cnames[SPICE_EK_MXCLSG][SPICE_EK_CSTRLN] i.e. no more than SPICE_EK_MXCLSG elements for array cnames, with each string no longer than SPICE_EK_CSTRLN (see SpiceEK.h); the array elements contain the table column names decls an array of strings with the number of array elements no larger than SPICE_EK_MXCLSG (see SpiceEK.h); the array elements contain the type declarations for each column with the Ith element of cnames and the Ith element of decls apply to the Ith column in the segment. Column names must start with a letter and contain only characters from the set {A-Z,a-z,0-9,$,_}. Case is not significant. The declarations are strings that contain `keyword=value' assignments that define the attributes of the columns to which they apply. the call: ## ExamplesAny numerical results shown for this example may differ between platforms as the results depend on the SPICE kernels used as input and the machine specific arithmetic implementation. ;; ;; Initialize needed parameters. ;; SPICEFALSE = 0B SPICETRUE = 1B EKNAME = "ekacex_t.ek" FNMLEN = 50 IFNAME = "Test EK" LNMLEN = 50 LSK = "standard.tm" NCOLS = 6 NRESVC = 0 NROWS = 9 TABLE = "DATAORDERS" ;; ;; Load a leapseconds kernel for UTC/ET conversion. ;; cspice_furnsh, LSK ;; ;; Open a new EK file. For simplicity, we won't ;; reserve space for the comment area, so the ;; number of reserved comment characters is zero. ;; The constant IFNAME is the internal file name. ;; if( cspice_exists( EKNAME ) ) then begin file_delete, EKNAME endif cspice_ekopn, EKNAME, IFNAME, NRESVC, handle cnames = strarr( NCOLS ) cdecls = strarr( NCOLS ) cnames[0] = "ORDER_ID" cdecls[0] = "DATATYPE = INTEGER, INDEXED = TRUE" cnames[1] = "CUSTOMER_ID" cdecls[1] = "DATATYPE = INTEGER, INDEXED = TRUE" cnames[2] = "LAST_NAME" cdecls[2] = "DATATYPE = CHARACTER*(*), INDEXED = TRUE" cnames[3] = "FIRST_NAME" cdecls[3] = "DATATYPE = CHARACTER*(*), INDEXED = TRUE" cnames[4] = "ORDER_DATE" cdecls[4] = "DATATYPE = TIME, INDEXED = TRUE" cnames[5] = "COST" cdecls[5] = "DATATYPE = DOUBLE PRECISION, " +$ "INDEXED = TRUE, NULLS_OK = TRUE" ;; ;; Start the segment. We presume the number of rows ;; of data is known in advance. ;; ## ParticularsNone. ## Required ReadingICY.REQ EK.REQ ## Version-Icy Version 1.0.0, 16-JUN-2003, EDW (JPL) ## Index_Entriesstart new E-kernel segment start new EK segment |

Wed Apr 5 17:58:00 2017