Index Page
cspice_ekrcec
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_EKRCEC reads data from a character column in 
   a specified segment of an EK file.

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

I/O

   
   Given:
   
      handle      the scalar integer referring to an EK file open for 
                  read access
      segno       the scalar integer indicating EK segment number
                  of interest
      recno       the scalar integer identifying the index for record
                  of interest
      column      the string scalar name of the column of interest
      nelts       the scalar integer value defining the number of
                  allowed elements in the 'cvals' array
      cvals_len   the scalar integer maximum length of a string
                  element in 'cvals'
   
                     Note, nelts and cvals_len define the amount
                     of memory for 'cvals' in the same manner
                     as the C declaration:
   
                        cvals[nelts][cvals_len]
   
   the call:
   
      cspice_ekrcec, handle, segno, recno, column, nelts, cvals_len, $
                     cvals, isnull
   
   returns:
   
      cvals     an array of strings values containing the data 
                values in 'column'
      isnull    a scalar boolean flagging whether the column entry 
                is null
   

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.

   
      ;;
      ;; Constants
      ;;
      EKNAME = "ekrcec.ek"
      IFNAME = "Test EK/Enjoy"
      NCOLS  = 2
      NROWS  = 5
      NRESVC = 0
      TABLE  = "CHR_DATA"
      CVLEN  = 10
      MAXVAL = 10
      cvals  = strarr( MAXVAL )
      
      ;;
      ;; 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 holds the internal file name. 
      ;;
      if ( cspice_exists (EKNAME) ) then begin
         file_delete, EKNAME
      endif
   
      ;;
      ;; Create and open a new EK file.
      ;;
      cspice_ekopn, EKNAME, IFNAME, NRESVC, handle
          
      ;;
      ;;   Set up the table and column names and declarations 
      ;;   for the CHR_DATA segment.
      ;;
      cdecls = strarr(NCOLS)
      cnames = strarr(NCOLS)
   
      ;;
      ;; Define the column names and formats.
      ;;
      cnames[0] = "CHR_COL_1"
      cdecls[0] = "DATATYPE = CHARACTER*(*), " +$
                  "INDEXED = TRUE, NULLS_OK = TRUE"
   
      cnames[1] = "CHR_COL_2"
      cdecls[1] = "DATATYPE = CHARACTER*(9), " +$
                  "SIZE = VARIABLE, NULLS_OK = TRUE"
          
     ;;
     ;; Start the segment.
     ;;
     cspice_ekbseg, handle, TABLE, NCOLS, cnames, cdecls, segno
   
      ;;
      ;; Loop over the number of rows, writing data to each column.
      ;;
      for i = 0, (NROWS-1) do begin
   
         ;;
         ;; Set the null flag for i == 1.
         ;;
         isnull =  ( i EQ 1 );
      
         ;;
         ;; Append a new record to the EK.
         ;;
         cspice_ekappr, handle, segno, recno
   
         ;;
         ;; Define the scalar.
         ;;
         cvals[0] = string(i + 350)
   
         ;;
         ;; Add the data to the EK in column 1.
         ;;
         cspice_ekacec, handle, segno, recno, cnames[0], 1, $
                        CVLEN, cvals, isnull
   
         ;;
         ;; Array-valued columns follow.
         ;;
         cvals[0] = string( 10*i )
         cvals[1] = string((10*i) + 1)
         cvals[2] = string((10*i) + 2)
         cvals[3] = string((10*i) + 3)
   
         ;;
         ;; Add the data to column 2.
         ;;
         cspice_ekacec, handle, segno, recno, cnames[1], 4, $
                        CVLEN, cvals, isnull
     
      endfor
   
      ;;
      ;; Close the file.
      ;;
      cspice_ekcls, handle
   
      ;;
      ;; Open the created file. Show the values added.
      ;;
      cspice_ekopr, EKNAME, handle
   
      for i = 0, (NROWS-1) do begin
       
         cspice_ekrcec, handle, segno, i, cnames[0], MAXVAL, $
                        CVLEN, cvals,  isnull
                     
         if ( NOT isnull ) then begin
            print, 'Data from column: ',cnames[0],'   record number: ',i
            print, cvals
            print   
         endif
    
         ;;
         ;; Array-valued columns follow.
         ;;
         cspice_ekrcec, handle, segno, i, cnames[1],  MAXVAL, $
                        CVLEN, cvals,  isnull
                     
         if ( NOT isnull ) then begin
            print, 'Data from column: ',cnames[1], '   record number: ',i
            print, cvals
            print   
         endif
   
      endfor
   
      ;;
      ;; End the file.
      ;;
      cspice_ekcls, handle
   
   IDL outputs:
   
      Data from column: CHR_COL_1   record number:        0
        350 
   
      Data from column: CHR_COL_2   record number:        0
          0         1         2         3 
   
      Data from column: CHR_COL_1   record number:        2
        352 
   
      Data from column: CHR_COL_2   record number:        2
         20        21        22        23 
   
      Data from column: CHR_COL_1   record number:        3
        353 
   
      Data from column: CHR_COL_2   record number:        3
         30        31        32        33 
   
      Data from column: CHR_COL_1   record number:        4
        354 
   
      Data from column: CHR_COL_2   record number:        4
         40        41        42        43 
   
   Note record 1 does not appear due to setting the 'isnull' flag
   to true for that record.

Particulars


   None.

Required Reading


   ICY.REQ
   EK.REQ

Version


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

Index_Entries

 
   read character data from EK column 
 



Wed Apr  5 17:58:01 2017