<?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=AMVedit_AE</id>
	<title>AMVedit AE - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pickwiki.org/index.php?action=history&amp;feed=atom&amp;title=AMVedit_AE"/>
	<link rel="alternate" type="text/html" href="https://pickwiki.org/index.php?title=AMVedit_AE&amp;action=history"/>
	<updated>2026-04-28T23:40:42Z</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=AMVedit_AE&amp;diff=1499&amp;oldid=prev</id>
		<title>Conversion script: link fix</title>
		<link rel="alternate" type="text/html" href="https://pickwiki.org/index.php?title=AMVedit_AE&amp;diff=1499&amp;oldid=prev"/>
		<updated>2015-02-26T23:48:53Z</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;Back to [[BasicSource]]&lt;br /&gt;
&lt;br /&gt;
This is a utility to edit associated multivales defined by the amvdefine_ae utility.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
     SUBROUTINE [[AMVEDIT_AE]](MAT AEJUNK)&lt;br /&gt;
&lt;br /&gt;
* Allows the user to edit associated multivalues shown across&lt;br /&gt;
* the terminal. The user defines the association using [[AMVDEFINE_AE]].&lt;br /&gt;
*&lt;br /&gt;
* AE runs $xxx programs by having an item in [[AE_XCOMS]] keyed $xxx where&lt;br /&gt;
*    the second line is the named of a cataloged program ending in _AE&lt;br /&gt;
*&lt;br /&gt;
* For example, if you have $EA set up with [[AMVEDIT_AE]] on line 2,&lt;br /&gt;
*              it will run this program if you enter &amp;quot;$EA&amp;quot; within AE&lt;br /&gt;
&lt;br /&gt;
     BELL = CHAR(7)&lt;br /&gt;
     FILENAME = AEJUNK(24)&lt;br /&gt;
     IF FILENAME EQ &amp;#039;&amp;#039; THEN&lt;br /&gt;
        CRT &amp;#039;There is no file name&amp;#039;:BELL&lt;br /&gt;
        RETURN&lt;br /&gt;
     END&lt;br /&gt;
     IF FILENAME NE OCONV(FILENAME,&amp;#039;MCP&amp;#039;) THEN&lt;br /&gt;
        CRT &amp;#039;The file name has unprintable characters&amp;#039;:BELL&lt;br /&gt;
        RETURN&lt;br /&gt;
     END&lt;br /&gt;
     OPEN &amp;#039;VOC&amp;#039; TO VOC ELSE&lt;br /&gt;
        CRT &amp;#039;Cannot open VOC file&amp;#039;:BELL&lt;br /&gt;
        RETURN&lt;br /&gt;
     END&lt;br /&gt;
     AMID = FILENAME:&amp;#039;_amv&amp;#039;&lt;br /&gt;
     READ JUNK FROM VOC, AMID ELSE&lt;br /&gt;
        JUNK = &amp;#039;X - Associated [[MultiValue]] definitions&amp;#039;&lt;br /&gt;
     END&lt;br /&gt;
     BAD = 0&lt;br /&gt;
     TEST = JUNK&amp;lt;2&amp;gt;&lt;br /&gt;
     IF LEN(TEST) GT 1 THEN BAD += 1&lt;br /&gt;
     IF TEST MATCHES &amp;#039;0[[X1N0X]]&amp;#039; THEN BAD += 2&lt;br /&gt;
     IF TEST MATCHES &amp;#039;0[[X1A0X]]&amp;#039; THEN BAD += 4&lt;br /&gt;
     TEST = JUNK&lt;br /&gt;
     IF JUNK&amp;lt;1&amp;gt;[1,1] NE &amp;#039;X&amp;#039; THEN BAD += 8&lt;br /&gt;
     DEL TEST&amp;lt;1&amp;gt;&lt;br /&gt;
     DEL TEST&amp;lt;1&amp;gt;&lt;br /&gt;
     CONVERT @VM:@AM:&amp;#039;1234567890&amp;#039; TO &amp;#039;&amp;#039; IN TEST&lt;br /&gt;
     IF TEST NE &amp;#039;&amp;#039; THEN BAD += 16&lt;br /&gt;
     IF BAD GT 0 THEN&lt;br /&gt;
        CRT &amp;#039;The definition for &amp;#039;:AMID:&amp;#039; is wrong (&amp;#039;:BAD:&amp;#039;)&amp;#039;&lt;br /&gt;
        RETURN&lt;br /&gt;
     END&lt;br /&gt;
&lt;br /&gt;
     LINE = AEJUNK(3)&lt;br /&gt;
     LOCATE(LINE,JUNK,3;POSV) THEN&lt;br /&gt;
        POSV = JUNK&amp;lt;4,POSV&amp;gt;&lt;br /&gt;
     END ELSE POSV = 0&lt;br /&gt;
     BAD = @FALSE&lt;br /&gt;
     IF NOT(POSV) THEN&lt;br /&gt;
* We can cope if there is only one AMV group defined&lt;br /&gt;
        BAD = @TRUE&lt;br /&gt;
        FOR XX = 5 TO 13&lt;br /&gt;
           IF JUNK&amp;lt;XX&amp;gt; NE &amp;#039;&amp;#039; THEN&lt;br /&gt;
              IF POSV THEN BAD = @TRUE ELSE BAD = @FALSE&lt;br /&gt;
              POSV = XX&lt;br /&gt;
           END&lt;br /&gt;
        NEXT XX&lt;br /&gt;
     END&lt;br /&gt;
     IF BAD THEN&lt;br /&gt;
        CRT &amp;#039;Line &amp;#039;:LINE:&amp;#039; is not in an association&amp;#039;&lt;br /&gt;
        RETURN&lt;br /&gt;
     END&lt;br /&gt;
&lt;br /&gt;
     MARK = JUNK&amp;lt;2&amp;gt;[1,1]&lt;br /&gt;
     KITH = JUNK&amp;lt;POSV&amp;gt;&lt;br /&gt;
     CONVERT @VM TO @AM IN KITH&lt;br /&gt;
&lt;br /&gt;
     OPEN &amp;#039;[[AE_COMS]]&amp;#039; TO ACOM ELSE&lt;br /&gt;
        CRT &amp;#039;Cannot open [[AE_COMS]]&amp;#039;:BELL&lt;br /&gt;
        SLEEP 1&lt;br /&gt;
        RETURN&lt;br /&gt;
     END&lt;br /&gt;
&lt;br /&gt;
     TTID = @USERNO:&amp;#039;_&amp;#039;:@LEVEL:&amp;#039;_&amp;#039;:FILENAME:&amp;#039;_assoc&amp;#039;&lt;br /&gt;
&lt;br /&gt;
     SHOW = KITH&lt;br /&gt;
     CONVERT @AM TO &amp;#039; &amp;#039; IN SHOW&lt;br /&gt;
     CRT &amp;#039;Editing AMV with fields &amp;#039;:SHOW&lt;br /&gt;
&lt;br /&gt;
* Set up a rotated array of the associated multivalues&lt;br /&gt;
     NEW1 = AEJUNK(1)&amp;lt;KITH&amp;lt;1&amp;gt;&amp;gt;&lt;br /&gt;
     CONVERT @VM TO @AM IN NEW1&lt;br /&gt;
     XXNO = DCOUNT(KITH,@AM)&lt;br /&gt;
     FOR XX = 2 TO XXNO&lt;br /&gt;
        LINE = KITH&amp;lt;XX&amp;gt;&lt;br /&gt;
        BITE = AEJUNK(1)&amp;lt;LINE&amp;gt;&lt;br /&gt;
        YYNO = DCOUNT(BITE,@VM)&lt;br /&gt;
        FOR YY = 1 TO YYNO&lt;br /&gt;
           NEW1&amp;lt;YY,XX&amp;gt; = BITE&amp;lt;1,YY&amp;gt;&lt;br /&gt;
        NEXT YY&lt;br /&gt;
     NEXT XX&lt;br /&gt;
&lt;br /&gt;
* Convert the value marks if we have another mark defined&lt;br /&gt;
     IF MARK NE &amp;#039;&amp;#039; THEN CONVERT @VM TO MARK IN NEW1&lt;br /&gt;
&lt;br /&gt;
* Write it away, edit it, and get it back&lt;br /&gt;
     SENTENCE = TRIM(@SENTENCE)&lt;br /&gt;
     VERB = FIELD(SENTENCE,&amp;#039; &amp;#039;,1)&lt;br /&gt;
     IF VERB EQ &amp;#039;RUN&amp;#039; THEN VERB = FIELD(SENTENCE,&amp;#039; &amp;#039;,1,3)&lt;br /&gt;
     WRITE NEW1 ON ACOM, TTID&lt;br /&gt;
     EXECUTE VERB:&amp;#039; [[AE_COMS]] &amp;#039;:TTID&lt;br /&gt;
     READ OLD1 FROM ACOM,TTID ELSE OLD1 = &amp;#039;&amp;#039;&lt;br /&gt;
     DELETE ACOM, TTID&lt;br /&gt;
&lt;br /&gt;
* replace the defined mark with value marks&lt;br /&gt;
     IF MARK NE &amp;#039;&amp;#039; THEN CONVERT MARK TO @VM IN OLD1&lt;br /&gt;
&lt;br /&gt;
* Rotate the array back to what it was&lt;br /&gt;
     NEW1 = &amp;#039;&amp;#039;&lt;br /&gt;
     ZZNO = DCOUNT(OLD1,@AM)&lt;br /&gt;
     FOR ZZ = 1 TO ZZNO&lt;br /&gt;
        LINE = OLD1&amp;lt;ZZ&amp;gt;&lt;br /&gt;
        FOR XX = 1 TO XXNO&lt;br /&gt;
           BITE = LINE&amp;lt;1,XX&amp;gt;&lt;br /&gt;
           IF BITE NE &amp;#039;&amp;#039; THEN NEW1&amp;lt;XX,ZZ&amp;gt; = BITE&lt;br /&gt;
        NEXT XX&lt;br /&gt;
     NEXT ZZ&lt;br /&gt;
&lt;br /&gt;
* Replace the original lines with the new ones&lt;br /&gt;
* I remove trailing @VMs YOU MAY WANT TO LEAVE THEM&lt;br /&gt;
     FOR XX = 1 TO XXNO&lt;br /&gt;
        BITE = NEW1&amp;lt;XX&amp;gt;&lt;br /&gt;
        BITE = TRIM(BITE,@VM,&amp;#039;T&amp;#039;)&lt;br /&gt;
        LINE = KITH&amp;lt;XX&amp;gt;&lt;br /&gt;
        AEJUNK(1)&amp;lt;LINE&amp;gt; = BITE&lt;br /&gt;
     NEXT XX&lt;br /&gt;
&lt;br /&gt;
     RETURN&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;/div&gt;</summary>
		<author><name>Conversion script</name></author>
	</entry>
</feed>