<?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=AMVdefine_AE</id>
	<title>AMVdefine AE - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pickwiki.org/index.php?action=history&amp;feed=atom&amp;title=AMVdefine_AE"/>
	<link rel="alternate" type="text/html" href="https://pickwiki.org/index.php?title=AMVdefine_AE&amp;action=history"/>
	<updated>2026-04-28T23:17:51Z</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=AMVdefine_AE&amp;diff=1507&amp;oldid=prev</id>
		<title>Conversion script: link fix</title>
		<link rel="alternate" type="text/html" href="https://pickwiki.org/index.php?title=AMVdefine_AE&amp;diff=1507&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 define associated multivales for the amvedit_ae utility.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
     SUBROUTINE [[AMVDEFINE_AE]](MAT AEJUNK)&lt;br /&gt;
&lt;br /&gt;
* Defines an associated multivalue group for [[AMVEDIT_AE]].&lt;br /&gt;
* The definition is kept in VOC item FILENAME_amv&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 $DA set up with [[AMVDEFINE_AE]] on line 2,&lt;br /&gt;
*              it will run this program if you enter &amp;quot;$DA&amp;quot; within AE&lt;br /&gt;
&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;
     IF JUNK&amp;lt;1&amp;gt;[1,1] NE &amp;#039;X&amp;#039; THEN&lt;br /&gt;
        CRT &amp;#039;The definition for &amp;#039;:AMID&lt;br /&gt;
        RETURN&lt;br /&gt;
     END&lt;br /&gt;
     SAVE = JUNK&lt;br /&gt;
     MARK = JUNK&amp;lt;2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     PROMPT &amp;#039;:&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     LOOP&lt;br /&gt;
        LOOP&lt;br /&gt;
           GOSUB PACK&lt;br /&gt;
           CRT &amp;#039;Defining Associated Multivalues for &amp;#039;:FILENAME&lt;br /&gt;
           CRT &amp;#039;Delimiter = &amp;gt;&amp;#039;:MARK:&amp;#039;&amp;lt;&amp;#039;&lt;br /&gt;
           CRT &amp;#039;     AMVs = &amp;#039;:SIGN&lt;br /&gt;
           CRT&lt;br /&gt;
           CRT &amp;#039;Commands - 1-9 for AMVs, [D]elimiter, &amp;#039;:&lt;br /&gt;
           CRT &amp;#039;[R]eturn, [Q]uit. Enter command &amp;#039;:&lt;br /&gt;
           INPUT COMD,1&lt;br /&gt;
           COMD = UPCASE(COMD)&lt;br /&gt;
           IF COMD GT &amp;#039;0&amp;#039; AND COMD LE &amp;#039;9&amp;#039; THEN&lt;br /&gt;
              GOSUB DOAMV&lt;br /&gt;
              CONTINUE&lt;br /&gt;
           END&lt;br /&gt;
        UNTIL INDEX(&amp;#039;[[/D/Q/R]]/&amp;#039;,&amp;#039;/&amp;#039;:COMD:&amp;#039;/&amp;#039;,1) DO&lt;br /&gt;
           CRT &amp;#039;Command unknown - Must be one of D, R or Q&amp;#039;:BELL&lt;br /&gt;
        REPEAT&lt;br /&gt;
        BEGIN CASE&lt;br /&gt;
* Delimiter change - must be printable, but not a letter or number&lt;br /&gt;
           CASE COMD EQ &amp;#039;D&amp;#039;&lt;br /&gt;
              LOOP&lt;br /&gt;
                 CRT &amp;#039;Press the key for the delimiter you want to use&amp;#039;&lt;br /&gt;
                 CRT &amp;#039;or just press [ENTER] to use a value mark &amp;#039;:&lt;br /&gt;
                 INPUT MUCK,1&lt;br /&gt;
                 BEGIN CASE&lt;br /&gt;
                    CASE MUCK = &amp;#039;&amp;#039;&lt;br /&gt;
                       MARK = &amp;#039;&amp;#039;&lt;br /&gt;
                    CASE MUCK MATCHES &amp;#039;1N&amp;#039;&lt;br /&gt;
                       MUCK = &amp;#039;Cannot use a number&amp;#039;&lt;br /&gt;
                    CASE MUCK MATCHES &amp;#039;1A&amp;#039;&lt;br /&gt;
                       MUCK = &amp;#039;Cannot use a letter&amp;#039;&lt;br /&gt;
                    CASE MUCK NE OCONV(MUCK,&amp;#039;MCP&amp;#039;)&lt;br /&gt;
                       MUCK = &amp;#039;Cannot use a non-printable character&amp;#039;&lt;br /&gt;
                    CASE 1&lt;br /&gt;
                       MARK = MUCK&lt;br /&gt;
                       MUCK = &amp;#039;&amp;#039;&lt;br /&gt;
                 END CASE&lt;br /&gt;
              UNTIL MUCK EQ &amp;#039;&amp;#039; DO&lt;br /&gt;
                 CRT MUCK:BELL&lt;br /&gt;
              REPEAT&lt;br /&gt;
* Update Definition&lt;br /&gt;
           CASE COMD EQ &amp;#039;R&amp;#039;&lt;br /&gt;
              GOSUB PACK&lt;br /&gt;
              IF CRAP THEN&lt;br /&gt;
                 CRT CRAP&lt;br /&gt;
                 COMD = &amp;#039;&amp;#039;&lt;br /&gt;
                 CONTINUE&lt;br /&gt;
              END ELSE&lt;br /&gt;
                 JUNK&amp;lt;1&amp;gt; = &amp;#039;X - Associated [[MultiValue]] definitions&amp;#039;&lt;br /&gt;
                 JUNK&amp;lt;2&amp;gt; = MARK&lt;br /&gt;
                 JUNK&amp;lt;3&amp;gt; = THIS&lt;br /&gt;
                 JUNK&amp;lt;4&amp;gt; = THAT&lt;br /&gt;
                 WRITE JUNK ON VOC, AMID&lt;br /&gt;
              END&lt;br /&gt;
        END CASE&lt;br /&gt;
     UNTIL COMD EQ &amp;#039;R&amp;#039; OR COMD EQ &amp;#039;Q&amp;#039; DO&lt;br /&gt;
     REPEAT&lt;br /&gt;
     RETURN&lt;br /&gt;
&lt;br /&gt;
PACK:&lt;br /&gt;
     THIS = &amp;#039;&amp;#039;; THAT = &amp;#039;&amp;#039;; SIGN = &amp;#039;&amp;#039;; CRAP = &amp;#039;&amp;#039;&lt;br /&gt;
     FOR XX = 5 TO 13&lt;br /&gt;
        LINE = JUNK&amp;lt;XX&amp;gt;&lt;br /&gt;
        YYNO = DCOUNT(LINE,@VM)&lt;br /&gt;
        FOR YY = 1 TO YYNO&lt;br /&gt;
           BITE = LINE&amp;lt;1,YY&amp;gt;&lt;br /&gt;
           LOCATE(BITE,THIS,1;HERE) THEN&lt;br /&gt;
              THERE = THAT&amp;lt;1,HERE&amp;gt; - 4&lt;br /&gt;
              CRAP = &amp;#039;Line &amp;#039;:BITE:&amp;#039; is in two AMVs -&amp;#039;:THERE:&amp;#039; and &amp;#039;:XX-4&lt;br /&gt;
           END ELSE&lt;br /&gt;
              THIS&amp;lt;1,-1&amp;gt; = BITE&lt;br /&gt;
              THAT&amp;lt;1,-1&amp;gt; = XX&lt;br /&gt;
           END&lt;br /&gt;
           SIGN&amp;lt;XX&amp;gt; = XX-4&lt;br /&gt;
        NEXT YY&lt;br /&gt;
     NEXT XX&lt;br /&gt;
     CONVERT @AM TO &amp;#039; &amp;#039; IN SIGN&lt;br /&gt;
     SIGN = TRIM(SIGN)&lt;br /&gt;
     RETURN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DOAMV:&lt;br /&gt;
     POSN = COMD + 4&lt;br /&gt;
     KITH = JUNK&amp;lt;POSN&amp;gt;&lt;br /&gt;
     LOOP&lt;br /&gt;
        SHOW = CHANGE(KITH,@VM,&amp;#039; &amp;#039;)&lt;br /&gt;
        CRT &amp;#039;AMV &amp;#039;:COMD:&amp;#039;, Fields = &amp;#039;:SHOW&lt;br /&gt;
        CRT &amp;#039; Press [C]lear, [R]eturn, [Q]uit, or [F]ields &amp;#039;:&lt;br /&gt;
        INPUT WHAT,1&lt;br /&gt;
        BEGIN CASE&lt;br /&gt;
* Clear everything for this AMV definition&lt;br /&gt;
           CASE WHAT = &amp;#039;C&amp;#039;&lt;br /&gt;
              KITH = &amp;#039;&amp;#039;&lt;br /&gt;
* Field add &amp;amp; delete - unordered as the first is the controlling one&lt;br /&gt;
*                      also I want to be able to define the order&lt;br /&gt;
           CASE WHAT EQ &amp;#039;F&amp;#039;&lt;br /&gt;
              LOOP&lt;br /&gt;
                 SHOW = CHANGE(KITH,@VM,&amp;#039; &amp;#039;)&lt;br /&gt;
                 CRT &amp;#039;AMV definition &amp;#039;:POSN-4&lt;br /&gt;
                 CRT &amp;#039;   Fields = &amp;#039;:SHOW&lt;br /&gt;
                 CRT&lt;br /&gt;
                 CRT &amp;#039;Enter a field number to add or delete - &amp;#039;:&lt;br /&gt;
                 CRT &amp;#039;or nothing to end editing &amp;#039;:&lt;br /&gt;
                 INPUT MUCK&lt;br /&gt;
                 BEGIN CASE&lt;br /&gt;
                    CASE MUCK MATCHES &amp;#039;1[[N0N]]&amp;#039;&lt;br /&gt;
                       LOCATE(MUCK,KITH,1;POSV)&lt;br /&gt;
                          THEN DEL KITH&amp;lt;1,POSV&amp;gt;&lt;br /&gt;
                          ELSE INS MUCK BEFORE KITH&amp;lt;1,POSV&amp;gt;&lt;br /&gt;
                    CASE MUCK = &amp;#039;&amp;#039;&lt;br /&gt;
                    CASE 1&lt;br /&gt;
                       CRT &amp;#039;The input was not an integer&amp;#039;:BELL&lt;br /&gt;
                 END CASE&lt;br /&gt;
              UNTIL MUCK = &amp;#039;&amp;#039; DO&lt;br /&gt;
              REPEAT&lt;br /&gt;
           CASE WHAT EQ &amp;#039;R&amp;#039;&lt;br /&gt;
              JUNK&amp;lt;POSN&amp;gt; = KITH&lt;br /&gt;
        END CASE&lt;br /&gt;
     UNTIL WHAT EQ &amp;#039;R&amp;#039; OR WHAT EQ &amp;#039;Q&amp;#039; DO&lt;br /&gt;
     REPEAT&lt;br /&gt;
     RETURN&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;/div&gt;</summary>
		<author><name>Conversion script</name></author>
	</entry>
</feed>