<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.ice-online.com/index.php?action=history&amp;feed=atom&amp;title=KEYWORD</id>
	<title>KEYWORD - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ice-online.com/index.php?action=history&amp;feed=atom&amp;title=KEYWORD"/>
	<link rel="alternate" type="text/html" href="https://wiki.ice-online.com/index.php?title=KEYWORD&amp;action=history"/>
	<updated>2026-04-10T12:50:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>https://wiki.ice-online.com/index.php?title=KEYWORD&amp;diff=848&amp;oldid=prev</id>
		<title>ConvertBot: facility for displaying and changing keyword fields in a file header</title>
		<link rel="alternate" type="text/html" href="https://wiki.ice-online.com/index.php?title=KEYWORD&amp;diff=848&amp;oldid=prev"/>
		<updated>2020-04-27T22:05:16Z</updated>

		<summary type="html">&lt;p&gt;facility for displaying and changing keyword fields in a file header&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;facility for displaying and changing keyword fields in a file header&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;file&amp;gt;  File to access&lt;br /&gt;
&amp;lt;func&amp;gt;  Keyword function to perform on file&lt;br /&gt;
&amp;lt;name&amp;gt;  Keyword name, if applicable for &amp;lt;func&amp;gt;&lt;br /&gt;
&amp;lt;value&amp;gt; Keyword value, if applicable for &amp;lt;func&amp;gt;&lt;br /&gt;
&lt;br /&gt;
KEYWORD provides access to the keyword fields in a file header.  Keywords&lt;br /&gt;
allow unrestricted free-format information storage in a KEY=VALUE format.&lt;br /&gt;
Keywords are typically stored in the extended header, which is extensible to&lt;br /&gt;
any size.&lt;br /&gt;
&lt;br /&gt;
The main header also has limited keyword storage (88 characters).  In general,&lt;br /&gt;
the user should use the EXTENDED header for keywords and reserve the MAIN&lt;br /&gt;
header keyword space for system use.&lt;br /&gt;
&lt;br /&gt;
Functions:&lt;br /&gt;
&lt;br /&gt;
  ADD    Add a keyword in the MAIN or EXTENDED header. SET with flags=ADD.&lt;br /&gt;
         This can result in more than one key with the same name in the same&lt;br /&gt;
         scope. Multiple keywords can be added at once by specifying a list of&lt;br /&gt;
         name/value pairs.&lt;br /&gt;
&lt;br /&gt;
           KEY &amp;lt;file&amp;gt; ADD NAME=&amp;lt;name&amp;gt; VALUE=&amp;lt;value&amp;gt; [&amp;lt;name2&amp;gt; &amp;lt;value2&amp;gt; ...]&lt;br /&gt;
&lt;br /&gt;
  DEL    Delete a keyword&lt;br /&gt;
&lt;br /&gt;
           KEY &amp;lt;file&amp;gt; DEL NAME=&amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  FGET   Create an ASCII text file (&amp;lt;file&amp;gt;) containing the keywords and their&lt;br /&gt;
         character string values. If &amp;lt;name&amp;gt; is not given, the output goes&lt;br /&gt;
         to a file called &amp;quot;&amp;lt;file&amp;gt;.key&amp;quot;, in the same directory as &amp;lt;file&amp;gt;.&lt;br /&gt;
         See section &amp;quot;.KEY FILES&amp;quot; below for more on the format of the .KEY file.&lt;br /&gt;
&lt;br /&gt;
           KEY &amp;lt;file&amp;gt; FGET &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  FPUT   Alias for FSET.&lt;br /&gt;
&lt;br /&gt;
  FSET   Replace current keyword entries by the entries in an ASCII keyword&lt;br /&gt;
         file (&amp;lt;name&amp;gt;). If &amp;lt;name&amp;gt; is not given, KEYWORD looks for a file called&lt;br /&gt;
         &amp;quot;&amp;lt;file&amp;gt;.key&amp;quot; in the same directory as the &amp;lt;file&amp;gt;. See section&lt;br /&gt;
         &amp;quot;.KEY FILES&amp;quot; below for more on the format of the .KEY file.&lt;br /&gt;
&lt;br /&gt;
           KEY &amp;lt;file&amp;gt; FSET &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  GET    Get a keyword or keywords from the MAIN or EXTENDED header.&lt;br /&gt;
&lt;br /&gt;
           KEY &amp;lt;file&amp;gt; GET NAME=&amp;lt;name&amp;gt; VALUE=&amp;lt;result name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         Since NeXtMidas 2.5.0, multiple keywords can be retrieved on a single&lt;br /&gt;
         line.&lt;br /&gt;
&lt;br /&gt;
           KEY &amp;lt;file&amp;gt; GET &amp;lt;KEYNAME1&amp;gt; &amp;lt;RESULTNAME1&amp;gt; [&amp;lt;KEYNAMEn&amp;gt; &amp;lt;RESULTNAMEn&amp;gt;...]&lt;br /&gt;
&lt;br /&gt;
  LIST   List to terminal all keywords matching &amp;lt;name&amp;gt; and their values in&lt;br /&gt;
         both main and extended headers; or all keywords if &amp;lt;name&amp;gt; is blank&lt;br /&gt;
&lt;br /&gt;
           KEY &amp;lt;file&amp;gt; LIST             ! list all keywords&lt;br /&gt;
           KEY &amp;lt;file&amp;gt; LIST &amp;lt;name&amp;gt;      ! list only those matching &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         Since NeXtMidas 2.7.0, &amp;lt;name&amp;gt; can be a wild-card pattern to indicate&lt;br /&gt;
         that all matching keywords should be listed (e.g. &amp;quot;*EX*&amp;quot; would list&lt;br /&gt;
         all keywords containing an &amp;quot;EX&amp;quot; in the name, &amp;quot;?VAL&amp;quot; will match any&lt;br /&gt;
         four-letter keywords ending in &amp;quot;VAL&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
           KEY &amp;lt;file&amp;gt; LIST &amp;lt;name&amp;gt;      ! list keywords matching pattern &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         Optional flags:&lt;br /&gt;
           /S   - Sort entries before printing to terminal. Note that this will&lt;br /&gt;
                  attempt a &amp;quot;friendly sort&amp;quot; such that &amp;quot;ABC2&amp;quot; comes before&lt;br /&gt;
                  &amp;quot;ABC12&amp;quot;, but does not preserve any internal scoping of the&lt;br /&gt;
                  keywords (other than MAIN vs EXT).     [Since NeXtMidas 3.3.0]&lt;br /&gt;
&lt;br /&gt;
  PUT    Alias for SET.&lt;br /&gt;
&lt;br /&gt;
  SET    Put a keyword in the MAIN or EXTENDED header. This will replace the&lt;br /&gt;
         named key in the same scope at the original location. Multiple keywords&lt;br /&gt;
         can be set at once by specifying a list of name/value pairs.&lt;br /&gt;
&lt;br /&gt;
           KEY &amp;lt;file&amp;gt; PUT NAME=&amp;lt;name&amp;gt; VALUE=&amp;lt;value&amp;gt; [&amp;lt;name2&amp;gt; &amp;lt;value2&amp;gt; ...]&lt;br /&gt;
&lt;br /&gt;
  SVGET                                                  [Since NeXtMidas 3.3.0]&lt;br /&gt;
         Gets state vector keywords from the file. One of the following&lt;br /&gt;
         modifiers may be included to specify the keyword format (if no&lt;br /&gt;
         qualifiers are specified an attempt will be made to try all available&lt;br /&gt;
         formats):&lt;br /&gt;
           /E   - Ephemeral keywords: ETIMn, POSXn, POSYn, POSZn, etc.&lt;br /&gt;
           /P   - Platinum keywords:  [prefix].TIME, [prefix]_POS.X,.Y,.Z, etc.&lt;br /&gt;
           /L   - Platinum keywords:  [prefix].LON,.LAT,.ALT&lt;br /&gt;
           /V   - Vector keywords:    ETIM_VEC, POSX_VEC, POSY_VEC, etc.&lt;br /&gt;
&lt;br /&gt;
         Note that the {SVPREFIX=[prefix]} qualifier should be used to set the&lt;br /&gt;
         prefix as needed for /P and /L modes (if not specified, it defaults to&lt;br /&gt;
         &amp;quot;EPH&amp;quot; with /P).&lt;br /&gt;
&lt;br /&gt;
         The /DT= switch will force all points to have the given time-delta&lt;br /&gt;
         between them rather than exactly matching the input points. If /DT=0&lt;br /&gt;
         the time delta will be set based on the keywords (defaulting to 1 min&lt;br /&gt;
         if the keywords are not evenly spaced). If the output is a Type 5000&lt;br /&gt;
         file, /DT=0 is implicit unless otherwise specified.&lt;br /&gt;
&lt;br /&gt;
         The output will be written to the specified state vector file. If the&lt;br /&gt;
         file already exists, any data in the file will be overwritten; if not,&lt;br /&gt;
         a new file will be created. For a BLUE file (.tmp/.prm) the output will&lt;br /&gt;
         be a Type 5001 file unless the TYPE= qualifier is used to designate an&lt;br /&gt;
         alternate type. All Type 5000 files will have their QUADWORDS set as&lt;br /&gt;
         appropriate. Usage:&lt;br /&gt;
&lt;br /&gt;
           KEY &amp;lt;file&amp;gt; SVGET/E &amp;lt;svFile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  SVPUT                                                  [Since NeXtMidas 3.3.0]&lt;br /&gt;
           Alias for SVSET.&lt;br /&gt;
&lt;br /&gt;
  SVSET                                                  [Since NeXtMidas 3.3.0]&lt;br /&gt;
         Sets state vector keywords into the file. Must include one or more of&lt;br /&gt;
         the following modifier switches indicating the state vector format:&lt;br /&gt;
           /E   - Ephemeral keywords: ETIMn, POSXn, POSYn, POSZn, etc.&lt;br /&gt;
           /P   - Platinum keywords:  [prefix].TIME, [prefix]_POS.X,.Y,.Z, etc.&lt;br /&gt;
           /L   - Platinum keywords:  [prefix].LON,.LAT,.ALT&lt;br /&gt;
           /V   - Vector keywords:    ETIM_VEC, POSX_VEC, POSY_VEC, etc.&lt;br /&gt;
&lt;br /&gt;
         Note that the {SVPREFIX=[prefix]} qualifier should be used to set the&lt;br /&gt;
         prefix as needed for /P and /L modes (if not specified, it defaults to&lt;br /&gt;
         &amp;quot;EPH&amp;quot; with /P).&lt;br /&gt;
&lt;br /&gt;
         Usage:&lt;br /&gt;
&lt;br /&gt;
           KEY &amp;lt;file&amp;gt; SVSET/E &amp;lt;svFile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  TCGET                                                  [Since NeXtMidas 3.3.0]&lt;br /&gt;
         Gets time-code keywords from the file. Must specify one input and one&lt;br /&gt;
         output modifier from following:&lt;br /&gt;
           Input Options:&lt;br /&gt;
             /X - X-Midas style keywords: TC_WHOLE_n, TC_FRAC_n, etc.&lt;br /&gt;
           Output Options:&lt;br /&gt;
             /I - ICE packets&lt;br /&gt;
&lt;br /&gt;
           KEY &amp;lt;file&amp;gt; SVGET/X/I &amp;lt;ice_pkt_file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  TCPUT                                                  [Since NeXtMidas 3.3.0]&lt;br /&gt;
         Alias for TCSET.&lt;br /&gt;
&lt;br /&gt;
  TCSET                                                  [Since NeXtMidas 3.3.0]&lt;br /&gt;
         Sets time-code keywords in the file. Must specify one input and one&lt;br /&gt;
         output modifier from following:&lt;br /&gt;
           Input Options:&lt;br /&gt;
             /I - ICE packets&lt;br /&gt;
           Output Options:&lt;br /&gt;
             /X - X-Midas style keywords: TC_WHOLE_n, TC_FRAC_n, etc.&lt;br /&gt;
&lt;br /&gt;
         Usage:&lt;br /&gt;
&lt;br /&gt;
           KEY &amp;lt;file&amp;gt; SVSET/I/X &amp;lt;ice_pkt_file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  TGET   Create a Results Table (&amp;lt;name&amp;gt;) containing the keywords and their&lt;br /&gt;
         values. If &amp;lt;name&amp;gt; is not given, the output goes to a Results Table&lt;br /&gt;
         which uses the root of &amp;lt;file&amp;gt; for its table name (e.g. MYFILE for&lt;br /&gt;
         &amp;quot;myfile.prm&amp;quot;). NOTE: For SCOPED Keywords, only the values in the&lt;br /&gt;
         final SCOPE will appear in the Results Table when the /SCOPE switch&lt;br /&gt;
         is NOT used.&lt;br /&gt;
&lt;br /&gt;
           KEY &amp;lt;file&amp;gt; TGET &amp;lt;name&amp;gt;              ! Create a &amp;quot;flat&amp;quot; table&lt;br /&gt;
&lt;br /&gt;
         or&lt;br /&gt;
&lt;br /&gt;
           KEY/FLAT=F &amp;lt;file&amp;gt; TGET &amp;lt;name&amp;gt;       ! Create a table with INNER&lt;br /&gt;
                                               ! and EXTENDED inner tables&lt;br /&gt;
&lt;br /&gt;
  TGET/F Similar to TGET except that keywords are written to a .tbl file&lt;br /&gt;
         (&amp;lt;name&amp;gt;) rather than a table in the results table.&lt;br /&gt;
&lt;br /&gt;
           KEY &amp;lt;file&amp;gt; TGET/F &amp;lt;name&amp;gt;            ! Create a table file&lt;br /&gt;
&lt;br /&gt;
         or&lt;br /&gt;
&lt;br /&gt;
           KEY/FLAT=F &amp;lt;file&amp;gt; TGET/F &amp;lt;name&amp;gt;     ! Create a table file with&lt;br /&gt;
                                               ! INNER and EXTENDED inner tables&lt;br /&gt;
&lt;br /&gt;
.KEY FILES&lt;br /&gt;
  The .KEY file used by FGET and FSET have one keyword name/value pair per line.&lt;br /&gt;
&lt;br /&gt;
  The format is:&lt;br /&gt;
&lt;br /&gt;
          NAME=VALUE    ! single &amp;quot;=&amp;quot; for main header&lt;br /&gt;
          NAME==VALUE   ! double &amp;quot;==&amp;quot; for extended header&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;NAME&amp;quot; can start in any column.  &amp;quot;VALUE&amp;quot; is interpreted literally (no quotes&lt;br /&gt;
  needed, space retained) and stored by default in ASCII.  NAME can be preceded&lt;br /&gt;
  by a type character as with results parameters, to typecast the value as&lt;br /&gt;
  numeric (with binary storage).  The special type &amp;quot;S[&amp;lt;len&amp;gt;]&amp;quot;  means an ASCII&lt;br /&gt;
  string of length &amp;lt;len&amp;gt;; this is a way of forcing/capturing trailing spaces.&lt;br /&gt;
  Keyword arrays are represented by type-casting to numeric and separating the&lt;br /&gt;
  keyword values with commas.  A &amp;quot;&amp;amp;&amp;quot; at the end of the line forces continuation&lt;br /&gt;
  to the next line.  Blank lines or anything after a &amp;quot;!&amp;quot; are interpreted as a&lt;br /&gt;
  comment and ignored.&lt;br /&gt;
&lt;br /&gt;
  To load all key/value pairs into the extended header, use the /EXTONLY switch.&lt;br /&gt;
  This is useful for loading a 3rd party key=value text file into the&lt;br /&gt;
  extended header without having to change = to == in the text file.&lt;br /&gt;
  Use this switch to revert to behavior prior to NeXtMidas 3.1.2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KEYWORD SCOPE&lt;br /&gt;
  Keyword &amp;quot;scope&amp;quot; refers to the keyword storage range actually visible at any&lt;br /&gt;
  given time.  By default, the entire extended header is visible.&lt;br /&gt;
&lt;br /&gt;
  Special scope syntax:&lt;br /&gt;
    * To access keywords in the main header, use /SCOPE=MAIN.&lt;br /&gt;
    * To access keywords at the start of the EXTENDED header, use /SCOPE=EXT.&lt;br /&gt;
    * To INCLUDE the scope keyword in your output use /SCOPE=TAG=VALUE&lt;br /&gt;
    * To EXCLUDE the scope keyword in your output use /SCOPE=TAG-=VALUE&lt;br /&gt;
    * To EXCLUDE the scope keyword but INCLUDE the next use /SCOPE=TAG+=VALUE&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
  1. Create a file, put a keyword in it and extract it.&lt;br /&gt;
      nM&amp;gt; header/create junk.tmp&lt;br /&gt;
      nM&amp;gt; key junk.tmp PUT mykey &amp;quot;INITIAL VALUE&amp;quot;&lt;br /&gt;
      nM&amp;gt; key junk.tmp GET mykey myval&lt;br /&gt;
      nM&amp;gt; res myval&lt;br /&gt;
      13S: MYVAL           = INITIAL VALUE&lt;br /&gt;
&lt;br /&gt;
  2. Replace the value of the keyword inserted above with a new value&lt;br /&gt;
      nM&amp;gt; key junk.tmp PUT mykey &amp;quot;NEW VALUE&amp;quot;&lt;br /&gt;
      nM&amp;gt; key junk.tmp GET mykey myval&lt;br /&gt;
      nM&amp;gt; res myval&lt;br /&gt;
       9S: MYVAL           = NEW VALUE&lt;br /&gt;
&lt;br /&gt;
  3. Scope with multiple keywords. Put the DUMMY keyword in twice and&lt;br /&gt;
     Now use scope to get the second DUMMY keyword.&lt;br /&gt;
      nM&amp;gt; header/create junk.tmp&lt;br /&gt;
      nM&amp;gt; keyword junk.tmp PUT DUMMY DUMMY1  TAG2 VAL2  NODE MYNODE&lt;br /&gt;
      nM&amp;gt; keyword junk.tmp ADD DUMMY DUMMY2&lt;br /&gt;
      nM&amp;gt; keyword/scope=&amp;quot;TAG=NAME,NODE=MYNODE&amp;quot; junk.tmp GET DUMMY out&lt;br /&gt;
      nM&amp;gt; res out&lt;br /&gt;
       6S: OUT             = DUMMY2&lt;br /&gt;
&lt;br /&gt;
    NOTE: Using () around the scope keyword works as well.&lt;br /&gt;
      nM&amp;gt; keyword/scope=(TAG=NAME,NODE=MYNODE) junk.tmp GET DUMMY out&lt;br /&gt;
&lt;br /&gt;
  4. Special syntax for /SCOPE. For a file with the keyword list:&lt;br /&gt;
      TIME==12:00&lt;br /&gt;
      FREQ==31e6&lt;br /&gt;
      AMPL==1.1&lt;br /&gt;
      TIME==13:00&lt;br /&gt;
      FREQ==32e6&lt;br /&gt;
      AMPL==1.2&lt;br /&gt;
      TIME==14:00&lt;br /&gt;
      FREQ==33e6&lt;br /&gt;
      AMPL==1.3&lt;br /&gt;
&lt;br /&gt;
      KEY/SCOPE=TIME=13:00&lt;br /&gt;
              (includes TIME=13:00, FREQ=32e6, and AMPL=1.2 in scope)&lt;br /&gt;
&lt;br /&gt;
      KEY/SCOPE=TIME-=13:00   ! &amp;quot;-=&amp;quot; means skip /scope keyword&lt;br /&gt;
              (skips TIME=13:00, includes FREQ=32e6 and AMPL=1.2 in scope)&lt;br /&gt;
&lt;br /&gt;
      KEY/SCOPE=TIME+=13:00   ! &amp;quot;+=&amp;quot; means skip /scope keyword, include next&lt;br /&gt;
              (skips TIME=13:00, includes FREQ=32e6, AMPL=1.2, TIME=14:00)&lt;br /&gt;
&lt;br /&gt;
  5. PUT a &amp;quot;D_VEC&amp;quot; keyword containing a vectorized list/array of doubles&lt;br /&gt;
      nM&amp;gt; keyword junk.tmp PUT &amp;quot;D_VEC&amp;quot; (1.1,2.2,3.3,4.4,5.5)&lt;br /&gt;
&lt;br /&gt;
     PUT a &amp;quot;I_VEC&amp;quot; keyword containing a vectorized list/array of short integers&lt;br /&gt;
      nM&amp;gt; res I:data (1,2,3)&lt;br /&gt;
      nM&amp;gt; keyword junk.tmp PUT &amp;quot;I_VEC&amp;quot; data&lt;br /&gt;
&lt;br /&gt;
  6. ADD multiple keywords using a single command&lt;br /&gt;
      nM&amp;gt; keyword junk.tmp ADD KEY1 &amp;quot;1st-Val&amp;quot; KEY2 &amp;quot;2nd-Val&amp;quot; THIRDKEY &amp;quot;3rd-Val&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Switches:&lt;br /&gt;
  /DT=     - Override the time delta used for SVGET.&lt;br /&gt;
  /EXTONLY - FPUT or FSET only. Load all key/value pairs from .KEY file into the&lt;br /&gt;
             extended header. (Since NeXtMidas 3.1.2) [DEF=FALSE]&lt;br /&gt;
  /FLAGS=  - Keywords flags/settings to use. [DEF=none, NoAbort for FUNC=LIST]&lt;br /&gt;
               NoAbort - Try to continue when an invalid keyword block is found.&lt;br /&gt;
               See also nxm.sys.lib.Keywords.flagsList. (Since NeXtMidas 3.1.1)&lt;br /&gt;
  /FLAT    - TGET or TGET/F only.  Generate a flat table or a table with&lt;br /&gt;
             inner tables MAIN and EXTENDED [DEF=TRUE]&lt;br /&gt;
  /LEGACYLIST - For LIST only, use old listing format prior to NeXtMidas 3.3.0&lt;br /&gt;
             that has paging enabled.        (Since NeXtMidas 3.5.4) [DEF=FALSE]&lt;br /&gt;
  /PREFIX= - Sets the prefix used with Platinum keywords in SVGET and SVSET.&lt;br /&gt;
  /SCOPE=  - restricts range of keywords currently visible.&lt;br /&gt;
               /SCOPE=MAIN will GET or SET in the main header.&lt;br /&gt;
               /SCOPE=EXT will GET or SET at the start of the extended header.&lt;br /&gt;
               /SCOPE=ALL will GET or SET in the main or extended header.&lt;br /&gt;
                      This is the equivalent of a space &amp;quot; &amp;quot; in X-Midas.&lt;br /&gt;
  /WARN    - State switch for warnings [DEF=TRUE]&lt;br /&gt;
&lt;br /&gt;
See Also: STATUS, nxm.sys.lib.Keywords&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NXM_Explain]]&lt;/div&gt;</summary>
		<author><name>ConvertBot</name></author>
		
	</entry>
</feed>