Index Page
cspice_ekaclc
A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X 

Abstract
I/O
Examples
Particulars
Required Reading
Version
Index_Entries

Abstract


   CSPICE_EKACLD adds a column of character data to an EK 
   segment.

   For important details concerning this module's function, please refer to
   the CSPICE routine ekaclc_c.

I/O

   
   Given:
   
      handle   the scalar integer referring to an EK file open for 
               write access
      segno    the scalar integer indicating EK segment number
               for the new record
      column   the scalar string naming the target column for the data
               stored in 'cvals'
      vallen   a scalar integer describing the maximum size for the
               individual 'cvals' elements
      cvals    an array of strings, listed in row order,
               containing the data to add to the EK referred to by 'handle'
      entszs   an array of integers containing the sizes of column
               entries - used only for columns possessing variable size
               entries; the ith element of 'entszs' corresponds to the
               size of the ith entry of 'cvals'
      nlflgs   an array of booleans indicating whether the
               corresponding 'cvals' has a null value, with
               the ith entry of 'nlflgs' corresponding to the ith
               entry of 'cvals'
      rcptrs   an integer array of record pointers, returned from
               cspice_ekifld, for the input segment
      wkindx   a read/write array of integers, used as a workspace
               when building an column index - as this array
               functions as read/write, the calling routine must
               declare an appropriate size of nrows (the number of 
               rows in the column)
   
   the call:
   
      cspice_ekaclc, handle, segno, column, vallen ,cvals, entszs, $
                     nlflgs, rcptrs, wkindx
   
   writes the 'cvals' data to 'column' in segment 'segno' of the
   EK referred to by 'handle'.
   

Examples


   Any 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     = "ekaclc.ek"
      FNMLEN     = 50
      IFNAME     = "Test EK"
      LNMLEN     = 50
      NCOLS      = 2
      NRESVC     = 0
      NROWS      = 9
      TABLE      = "DATAORDERS"
      
      ;;
      ;; 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] = "LAST_NAME" 
      cdecls[0] = "DATATYPE = CHARACTER*(*), INDEXED  = TRUE"
      
      cnames[1] = "FIRST_NAME" 
      cdecls[1] = "DATATYPE = CHARACTER*(*), INDEXED  = TRUE"
   
      ;;
      ;; Start the segment.  We presume the number of  rows 
      ;; of data is known in advance. 
      ;;
      cspice_ekifld, handle,  TABLE,   NCOLS,  NROWS,  $  
                     cnames,   cdecls, segno,  rcptrs
      
      ;;
      ;; At this point, arrays containing data for the 
      ;; segment's columns may be filled in.  The names 
      ;; of the data arrays are shown below. 
      ;;
      ;;   Column           Data array 
      ;;
      ;;   "LAST_NAME"      lnames 
      ;;   "FIRST_NAME"     fnames 
      ;;
      ;; The null flags array indicates which entries are null. 
      ;; It is ignored for columns that don't allow null 
      ;; values.  In this case, non of the columns allow
      ;; nulls.
      ;;
      ;; Fill in data arrays and null flag arrays here.  This code
      ;; section would normally be replaced by calls to user functions
      ;; returning column values.
      ;;
      fnames = strarr( NROWS)
      lnames = strarr( NROWS)
      nlflgs = lonarr( NROWS)
      wkindx = lonarr( NROWS)
      sizes  = lonarr( NROWS)
      
      for i = 0, (NROWS-1) do begin
      
         fnames[i] = "Order " + string(i) + " Customer first name"
         lnames[i] = "Order " + string(i) + " Customer last name"
      
         nlflgs[i]  =  SPICEFALSE
      
      endfor
      
      ;;
      ;; The sizes array shown below is ignored for scalar 
      ;; and fixed-size array columns, so we need not 
      ;; initialize it.  For variable-size arrays, the 
      ;; Ith element of the sizes array must contain the size 
      ;; of the Ith column entry in the column being written. 
      ;; Normally, the sizes array would be reset for each 
      ;; variable-size column. 
      ;;
      ;; Add the columns of data to the segment.  All of the 
      ;; data for each column is written in one shot. 
      ;;
      cspice_ekaclc, handle, segno, "last_name", LNMLEN, lnames, $
                     sizes, nlflgs, rcptrs, wkindx 
      
      cspice_ekaclc, handle, segno, "first_name", FNMLEN, fnames, $
                     sizes, nlflgs, rcptrs, wkindx
      
      ;;
      ;; Complete the segment.  The rcptrs array is that 
      ;; returned by ekifld_c. 
      ;;
      cspice_ekffld, handle, segno, rcptrs
      
      
      ;;
      ;; The file must be closed by a call to cspice_ekcls
      ;;
      cspice_ekcls, handle

Particulars


   None.

Required Reading


   ICY.REQ
   EK.REQ

Version


   -Icy Version 1.0.1, 27-FEB-2007, EDW (JPL)

      Removed unneeded variable assignment and unneeded cspice_unload call 
      in example section.

   -Icy Version 1.0.0, 16-JUN-2003, EDW (JPL)

Index_Entries

 
   write entire character column to EK segment 
 



Wed Apr  5 17:58:00 2017