<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://pickwiki.org/index.php?action=history&amp;feed=atom&amp;title=HollLoad</id>
	<title>HollLoad - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pickwiki.org/index.php?action=history&amp;feed=atom&amp;title=HollLoad"/>
	<link rel="alternate" type="text/html" href="https://pickwiki.org/index.php?title=HollLoad&amp;action=history"/>
	<updated>2026-04-28T23:18:19Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://pickwiki.org/index.php?title=HollLoad&amp;diff=1875&amp;oldid=prev</id>
		<title>Conversion script: link fix</title>
		<link rel="alternate" type="text/html" href="https://pickwiki.org/index.php?title=HollLoad&amp;diff=1875&amp;oldid=prev"/>
		<updated>2015-02-26T23:48:55Z</updated>

		<summary type="html">&lt;p&gt;link fix&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
* HOLLLOAD - Does a hollerith load of a data file&lt;br /&gt;
************************************************************************&lt;br /&gt;
&lt;br /&gt;
      PROGRAM HOLLLOAD&lt;br /&gt;
&lt;br /&gt;
* takes the file name and a list of field names, retrieving them into the&lt;br /&gt;
* &amp;amp;HOLD&amp;amp; file as a fixed-width dump. The width is recovered from the dict.&lt;br /&gt;
* Sub-values are not handled.&lt;br /&gt;
&lt;br /&gt;
* !!! WARNING - This routine will destroy any existing data in records it&lt;br /&gt;
*               overwrites.&lt;br /&gt;
&lt;br /&gt;
************************************************************************&lt;br /&gt;
&lt;br /&gt;
      ARGS = CONVERT( &amp;quot; &amp;quot;, @FM, TRIM( UPCASE( @SENTENCE)))&lt;br /&gt;
      LOCATE &amp;quot;HOLLLOAD&amp;quot; IN ARGS&amp;lt;1&amp;gt; SETTING NAMEPOSN ELSE GOTO SYNTAX:&lt;br /&gt;
&lt;br /&gt;
      FILENAME = ARGS&amp;lt;NAMEPOSN+1&amp;gt;&lt;br /&gt;
      IF FILENAME EQ &amp;quot;&amp;quot; THEN GOTO SYNTAX:&lt;br /&gt;
      HOLDFILENAME = ARGS&amp;lt;NAMEPOSN+2&amp;gt;&lt;br /&gt;
      FIELDCOUNT = DCOUNT( ARGS, @FM) - (NAMEPOSN+2)&lt;br /&gt;
&lt;br /&gt;
      DIM DICTENTRIES( FIELDCOUNT)&lt;br /&gt;
&lt;br /&gt;
      OPEN &amp;quot;&amp;quot;, FILENAME TO FILEPTR ELSE STOP &amp;quot;Unable to open &amp;quot;:FILENAME&lt;br /&gt;
      OPEN &amp;quot;DICT&amp;quot;, FILENAME TO DICTPTR ELSE STOP &amp;quot;Unable to open DICT &amp;quot;:FILENAME&lt;br /&gt;
      OPEN &amp;quot;&amp;quot;, &amp;quot;&amp;amp;HOLD&amp;amp;&amp;quot; TO HOLD ELSE STOP &amp;quot;Unable to open the &amp;amp;HOLD&amp;amp; file&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      MAXFIELD = 0&lt;br /&gt;
      FOR II = 1 TO FIELDCOUNT&lt;br /&gt;
         IF ARGS&amp;lt;NAMEPOSN+2+II&amp;gt; EQ &amp;quot;FMT&amp;quot; THEN&lt;br /&gt;
* need to strip LRT here because it&amp;#039;s last entry not current entry ...&lt;br /&gt;
            DICTENTRIES(II-1)&amp;lt;5&amp;gt; = CONVERT( \&amp;#039;&amp;quot;LRT\ , &amp;quot;&amp;quot;, ARGS&amp;lt;NAMEPOSN+3+II&amp;gt;)&lt;br /&gt;
            DEL ARGS&amp;lt;NAMEPOSN+2+II&amp;gt;; DEL ARGS&amp;lt;NAMEPOSN+2+II&amp;gt;&lt;br /&gt;
            FIELDCOUNT -= 2&lt;br /&gt;
            IF II GT FIELDCOUNT THEN EXIT&lt;br /&gt;
         END&lt;br /&gt;
&lt;br /&gt;
         READ DICTENTRIES(II) FROM DICTPTR, ARGS&amp;lt;NAMEPOSN+2+II&amp;gt; ELSE STOP &amp;quot;Unable to read &amp;quot;:ARGS(NAMEPOSN+2+II):&amp;quot; from dictionary&amp;quot;&lt;br /&gt;
         IF DICTENTRIES(II)[1,1] NE &amp;quot;D&amp;quot; THEN STOP &amp;quot;Fields for loading must be D-type&amp;quot;&lt;br /&gt;
         IF DICTENTRIES(II)&amp;lt;2&amp;gt; GT MAXFIELD THEN MAXFIELD = DICTENTRIES(II)&amp;lt;2&amp;gt;&lt;br /&gt;
         DICTENTRIES(II)&amp;lt;5&amp;gt; = CONVERT( &amp;quot;LRT&amp;quot;, &amp;quot;&amp;quot;, DICTENTRIES(II)&amp;lt;5&amp;gt;)&lt;br /&gt;
         IF NUM( DICTENTRIES(II)&amp;lt;5&amp;gt; ) ELSE STOP &amp;quot;Dict entry for &amp;quot;:ARGS&amp;lt;NAMEPOSN+2+II&amp;gt;:&amp;quot; format is illegible&amp;quot;&lt;br /&gt;
      NEXT&lt;br /&gt;
      IF DICTENTRIES(1)&amp;lt;2&amp;gt; NE 0 THEN STOP &amp;quot;First field to load must be @ID or equivalent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      OPENSEQ &amp;quot;&amp;amp;HOLD&amp;amp;&amp;quot;, HOLDFILENAME TO SEQPTR ELSE STOP &amp;quot;Unable to open &amp;quot;:HOLDFILENAME:&amp;quot; in &amp;amp;HOLD&amp;amp;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      DIM DATAREC( MAXFIELD)&lt;br /&gt;
      OLDKEY = &amp;quot;&amp;quot;&lt;br /&gt;
      LOOP&lt;br /&gt;
&lt;br /&gt;
         READSEQ LINE FROM SEQPTR ELSE LINE = &amp;quot;&amp;quot;&lt;br /&gt;
         LINEPOS = 1&lt;br /&gt;
         FIELDLEN = DICTENTRIES(1)&amp;lt;5&amp;gt; ;* note this has had L[[/R/T]] stripped ...&lt;br /&gt;
         KEY = TRIM( LINE[1, DICTENTRIES(1)&amp;lt;5&amp;gt;])&lt;br /&gt;
         LINEPOS += FIELDLEN&lt;br /&gt;
&lt;br /&gt;
         IF KEY NE OLDKEY THEN&lt;br /&gt;
            IF OLDKEY NE &amp;quot;&amp;quot; THEN&lt;br /&gt;
               MATWRITE DATAREC TO FILEPTR, OLDKEY&lt;br /&gt;
               RELEASE&lt;br /&gt;
            END&lt;br /&gt;
            OLDKEY = KEY&lt;br /&gt;
            MAT DATAREC = &amp;quot;&amp;quot;&lt;br /&gt;
            VALUENO = 1&lt;br /&gt;
         END ELSE VALUENO += 1&lt;br /&gt;
&lt;br /&gt;
      WHILE LINE&lt;br /&gt;
&lt;br /&gt;
         FOR II = 2 TO FIELDCOUNT&lt;br /&gt;
            FIELDLEN = DICTENTRIES(II)&amp;lt;5&amp;gt;&lt;br /&gt;
            IF VALUENO EQ 1 OR DICTENTRIES(II)&amp;lt;6&amp;gt; EQ &amp;quot;M&amp;quot; THEN&lt;br /&gt;
               VALUE = TRIM( LINE[LINEPOS, FIELDLEN])&lt;br /&gt;
               LINEPOS += FIELDLEN&lt;br /&gt;
               IF VALUE NE &amp;quot;&amp;quot; THEN DATAREC(DICTENTRIES(II)&amp;lt;2&amp;gt;)&amp;lt;1,VALUENO&amp;gt; = VALUE&lt;br /&gt;
            END&lt;br /&gt;
         NEXT&lt;br /&gt;
&lt;br /&gt;
      REPEAT&lt;br /&gt;
&lt;br /&gt;
      RETURN&lt;br /&gt;
&lt;br /&gt;
********************************&lt;br /&gt;
SYNTAX:&lt;br /&gt;
      PRINT &amp;quot;Syntax is:&amp;quot;&lt;br /&gt;
      PRINT &amp;quot;RUN GBP HOLLLOAD filename holdfilename id-field [fieldname [fieldname...]]&amp;quot;&lt;br /&gt;
      RETURN&lt;br /&gt;
   END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Conversion script</name></author>
	</entry>
</feed>