diff --git a/README.md b/README.md index bae01cc..a89265d 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ SHA256 digest for SQLinDS: FCD7EE5B59E08CD1A2E31F6A5D94D7275C99AFFAACEA3D187F60A SHA256 digest for DFA: CC19058354D4B51F0675A8414F18089CCC583AA45822CEFC79368F06D8715846 -- **macroArray**\[0.5\], implementation of an array concept in a macrolanguage, e.g. +- **macroArray**\[0.6\], implementation of an array concept in a macrolanguage, e.g. ``` %array(ABC[17] (111:127), macarray=Y); @@ -107,7 +107,7 @@ SHA256 digest for DFA: CC19058354D4B51F0675A8414F18089CCC583AA45822CEFC79368F06D which = 1:H:2 ); ``` -SHA256 digest for macroArray: 96215AC04EF26C97719F6B1EDA5ACAF7DD491B7F2DDDE9985A0560CD2916ABA1 +SHA256 digest for macroArray: 022A7CD5F0C1E72032CC3426A8AC53D61A8766868B6B48195BC69F59007323B8 [Documentation for macroArray](https://github.com/yabwon/SAS_PACKAGES/blob/master/packages/macroarray.md "Documentation for macroArray") diff --git a/packages/README.md b/packages/README.md index 9b973c0..fa33917 100644 --- a/packages/README.md +++ b/packages/README.md @@ -55,7 +55,7 @@ SHA256 digest for DFA: CC19058354D4B51F0675A8414F18089CCC583AA45822CEFC79368F06D --- -- **macroArray**\[0.5\], implementation of an array concept in a macro language, e.g. +- **macroArray**\[0.6\], implementation of an array concept in a macro language, e.g. ``` %array(ABC[17] (111:127), macarray=Y); @@ -74,7 +74,7 @@ SHA256 digest for DFA: CC19058354D4B51F0675A8414F18089CCC583AA45822CEFC79368F06D which = 1:H:2 ); ``` -SHA256 digest for macroArray: 96215AC04EF26C97719F6B1EDA5ACAF7DD491B7F2DDDE9985A0560CD2916ABA1 +SHA256 digest for macroArray: 022A7CD5F0C1E72032CC3426A8AC53D61A8766868B6B48195BC69F59007323B8 [Documentation for macroArray](https://github.com/yabwon/SAS_PACKAGES/blob/master/packages/macroarray.md "Documentation for macroArray") diff --git a/packages/SHA256_for_packages.txt b/packages/SHA256_for_packages.txt index 6defa5a..e5516a4 100644 --- a/packages/SHA256_for_packages.txt +++ b/packages/SHA256_for_packages.txt @@ -1,3 +1,6 @@ +/* 20201017 */ +macroArray: 022A7CD5F0C1E72032CC3426A8AC53D61A8766868B6B48195BC69F59007323B8 + /* 20201014 */ BasePlus: 4E0C2A45CF8A5863C0D054568C712D10A296240877D604E77A778451A740874B DFA: CC19058354D4B51F0675A8414F18089CCC583AA45822CEFC79368F06D8715846 diff --git a/packages/macroarray.md b/packages/macroarray.md index 9eed0e1..6357c5c 100644 --- a/packages/macroarray.md +++ b/packages/macroarray.md @@ -13,7 +13,7 @@ --- -# The macroArray package [ver. 0.5] ############################################### +# The macroArray package [ver. 0.6] ############################################### The **macroArray** package implements a macro array facility: - `%array()`, @@ -63,7 +63,7 @@ Required SAS Components: *SAS package generated by generatePackage, version 20200911* The SHA256 hash digest for package macroArray: -`96215AC04EF26C97719F6B1EDA5ACAF7DD491B7F2DDDE9985A0560CD2916ABA1` +`022A7CD5F0C1E72032CC3426A8AC53D61A8766868B6B48195BC69F59007323B8` --- # Content description ############################################################################################ @@ -306,7 +306,12 @@ The basic syntax is the following, the `<...>` means optional parameters: or when used with second parameter equal `I` (insert) allow to overwrite macroarrays value: `%let %myArr(17,i) = 42;` - + If set to `M` then for a given array name the macro symbols table is scanned for + macrovariables with prefix like the array name and numeric suffixes, + then the minimum and the maximum index is determined + and all not existing global macrovariables are created and + a macro is generated in the same way as for the `Y` value + * `ds=` - *Optional*, use a dataset as a basis for a macroarray data, if used by default overwrites use of the `array` parameter, honors `macarray=` argument, dataset options are allowed, e.g. `sashelp.class(obs=5)` @@ -570,6 +575,19 @@ The basic syntax is the following, the `<...>` means optional parameters: %array(ds = sashelp.cars(obs=100 where=(Cylinders=6)), vars = Make| Type| Model, macarray=Y) %put *%make(&makeLBOUND.)*%Model(2)*%Model(3)*%Model(4)*%type(&typeHBOUND.)*; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +**EXAMPLE 13.** Creating an array and macro from existing list of macrovariables + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas + %let myTest3 = 13; + %let myTest6 = 16; + %let myTest9 = 19; + + %array(myTest, macarray=M) + %do_over(myTest, phrase = %nrstr(%put *&_I_.*%myTest(&_I_.)*;)) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + --- @@ -1088,7 +1106,7 @@ The basic syntax is the following, the `<...>` means optional parameters: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -**EXAMPLE 3.** Create a "4-loop" `%DO_OVER4()` macro +**EXAMPLE 2.** Create a "4-loop" `%DO_OVER4()` macro ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas %make_do_over(4); diff --git a/packages/macroarray.zip b/packages/macroarray.zip index 99187e2..cf0a03f 100644 Binary files a/packages/macroarray.zip and b/packages/macroarray.zip differ