DEFINE !doit(nbval=!TOKENS(1))
 615 M>  DEFINE
 616 M>    !doit(nbval=!TOKENS(1))
INPUT PROGRAM.
 617 M>   INPUT PROGRAM.

>Warning # 6804 in column 3.  Text: !DOIT
>The macro name specified on the DEFINE command duplicates the name of a
>previously defined macro.  This instance will take precedence.

LOOP cnt=1 TO !nbval.
 618 M>  LOOP cnt=1 TO !nbval.
COMPUTE myval=LN(cnt).
 619 M>  COMPUTE myval=LN(cnt).
END CASE.
 620 M>  END CASE.
END LOOP.
 621 M>  END LOOP.
END FILE.
 622 M>  END FILE.
END INPUT PROGRAM.
 623 M>  END INPUT PROGRAM.

 624 M>  
* Next line assumes you need 5 digits.
 625 M>  * Next line assumes you need 5 digits.
FORMAT myval(F8.5).
 626 M>  FORMAT myval(F8.5).
* Define the macro variable.
 627 M>  * Define the macro variable.
DO IF cnt=1.
 628 M>  DO IF cnt=1.
WRITE OUTFILE='c:\temp\macro var.sps' /"DEFINE !values()"/myval.
 629 M>  WRITE OUTFILE='c:\temp\macro var.sps' /"DEFINE !values()"/myval.
ELSE IF cnt<!nbval.
 630 M>  ELSE IF cnt<!nbval.
WRITE OUTFILE='c:\temp\macro var.sps' /myval.
 631 M>  WRITE OUTFILE='c:\temp\macro var.sps' /myval.
ELSE.
 632 M>  ELSE.
WRITE OUTFILE='c:\temp\macro var.sps' /myval /"!ENDDEFINE.".
 633 M>  WRITE OUTFILE='c:\temp\macro var.sps' /myval /"!ENDDEFINE.".
END IF.
 634 M>  END IF.
EXECUTE.
 635 M>  EXECUTE.
* Run the syntax to define the variable.
 636 M>  * Run the syntax to define the variable.
INCLUDE FILE='c:\temp\macro var.sps'.
 637 M>  INCLUDE FILE='c:\temp\macro var.sps'.
EXECUTE.
 638 M>  EXECUTE.
!ENDDEFINE.
 639 M>  !ENDDEFINE.
*///////////////////////////////////.
 640 M>  *///////////////////////////////////.

 641 M>  
!doit nbval=3.
 642 M>  
 643 M>  .
 644 M>  INPUT PROGRAM.
 645 M>  LOOP CNT=1 TO 3.
 646 M>  COMPUTE MYVAL=LN(CNT).
 647 M>  END CASE.
 648 M>  END LOOP.
 649 M>  END FILE.
 650 M>  END INPUT PROGRAM.
 651 M>  FORMAT MYVAL(F8.5).
 652 M>  DO IF CNT=1.
 653 M>  WRITE OUTFILE='c:\temp\macro var.sps' /'DEFINE !values()'/MYVAL.
 654 M>  ELSE IF CNT< 3.
 655 M>  WRITE OUTFILE='c:\temp\macro var.sps' /MYVAL.
 656 M>  ELSE.
 657 M>  WRITE OUTFILE='c:\temp\macro var.sps' /MYVAL /'!ENDDEFINE.'.
 658 M>  END IF.
 659 M>  EXECUTE.
 660 M>  INCLUDE FILE='c:\temp\macro var.sps'.
 660  DEFINE !values()
 660 M>  DEFINE
 661 M>    !values()
 662    .00000
 662 M>    .00000
 663    .69315
 663 M>    .69315
 664   1.09861
 664 M>    1.09861

>Warning # 6804 on line 661 in column 3.  Text: !VALUES
>The macro name specified on the DEFINE command duplicates the name of a
>previously defined macro.  This instance will take precedence.

 665 M>  !ENDDEFINE
 666  !ENDDEFINE.
 666 M>  
 667  
 667 M>  
 668 M>  * End of INCLUDE nesting level 01
 669  * End of INCLUDE nesting level 01.
 669 M>  
 670 M>  EXECUTE
 671 M>   .

 672 M>  
*In the following macro, the macro variable !myvar takes on the values ln(1), ln
   (2) and ln(3).
 673 M>  *In the following macro, the macro variable !myvar takes on the values 
            ln(1), ln(2) and ln(3).

 674 M>  
DEFINE !test()
 675 M>  DEFINE
 676 M>    !test()
!LET !cnt=!NULL
 677 M>   !LET !cnt=!NULL
!LET !val=!EVAL(!values)
 678 M>   !LET !val=!EVAL(!values)
!DO !myvar !IN (!val)
 679 M>   !DO !myvar !IN (!val)
!LET !cnt=!CONCAT(!cnt,!BLANK(1))
 680 M>   !LET !cnt=!CONCAT(!cnt,!BLANK(1))
COMPUTE !CONCAT(var,!LENGTH(!cnt))=!myvar.
 681 M>   COMPUTE !CONCAT(var,!LENGTH(!cnt))=!myvar.

>Warning # 6804 in column 3.  Text: !TEST
>The macro name specified on the DEFINE command duplicates the name of a
>previously defined macro.  This instance will take precedence.

!DOEND
 682 M>  !DOEND
EXECUTE.
 683 M>   EXECUTE.
!ENDDEFINE.
 684 M>  !ENDDEFINE.

 685 M>  
!test.
 686 M>  
 687 M>  .
 688 M>  COMPUTE VAR1 = .00000.
 689 M>  COMPUTE VAR2 = .69315.
 690 M>  COMPUTE VAR3 = 1.09861.
 691 M>  EXECUTE
 692 M>   .
* Next line is to see all five digits.
 693 M>  * Next line is to see all five digits.
FORMAT var1 TO var2 (F8.5).
 694 M>  FORMAT var1 TO var2 (F8.5).
LIST.
 695 M>  LIST.


List

Notes
Output Created 03-JUN-2001 20:39:40
Comments
Input Filter <none>
Weight <none>
Split File <none>
N of Rows in Working Data File 3
Syntax LIST.
Resources Elapsed Time 0:00:00.02





     CNT    MYVAL     VAR1     VAR2     VAR3

    1.00   .00000   .00000   .69315     1.10
    2.00   .69315   .00000   .69315     1.10
    3.00  1.09861   .00000   .69315     1.10


Number of cases read:  3    Number of cases listed:  3