diff --git a/all.sas b/all.sas index 522337a..d814d56 100644 --- a/all.sas +++ b/all.sas @@ -5674,30 +5674,26 @@ run; @param [out] outsummary= (work.mp_getformats_summary) Output dataset containing summary definitions - structure taken from dictionary.formats as follows: -|libname:$8.|memname:$32.|path:$1024.|objname:$32.|fmtname:$32.|fmttype:$1.|source:$1.|minw:best.|mind:best.|maxw:best.|maxd:best.|d -efw:best.|defd:best.| -|---|---|---|---|---|---|---|---|---|---|---|---|---| -|||||$|F|B|1|0|32767|0|1|0| -|||||$|I|B|1|0|32767|0|1|0| -|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWIANYDT|$ANYDTIF|I|U|1|0|60|0|19|0| -|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWFASCII|$ASCII|F|U|1|0|32767|0|1|0| -|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWIASCII|$ASCII|I|U|1|0|32767|0|1|0| -|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWFBASE6|$BASE64X|F|U|1|0|32767|0|1|0| -|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWIBASE6|$BASE64X|I|U|1|0|32767|0|1|0| -|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWFBIDI|$BIDI|F|U|1|0|32767|0|1|0| -|||||$BINARY|F|B|1|0|32767|0|8|0| -|||||$BINARY|I|B|1|0|32767|0|8|0| + + |libname:$8.|memname:$32.|path:$1024.|objname:$32.|fmtname:$32.|fmttype:$1.|source:$1.|minw:best.|mind:best.|maxw:best.|maxd:best.|defw:best.|defd:best.| + |---|---|---|---|---|---|---|---|---|---|---|---|---| + | | | | |$|F|B|1|0|32767|0|1|0| + | | | | |$|I|B|1|0|32767|0|1|0| + | | |/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWIANYDT|$ANYDTIF|I|U|1|0|60|0|19|0| + | | |/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWFASCII|$ASCII|F|U|1|0|32767|0|1|0| + | | |/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWIASCII|$ASCII|I|U|1|0|32767|0|1|0| + | | |/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWFBASE6|$BASE64X|F|U|1|0|32767|0|1|0| + @param [out] outdetail= (0) Provide an output dataset in which to export all the custom format definitions (from proc format CNTLOUT). Definitions: https://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/viewer.htm#a002473477.htm Sample data: - |NAME $|LENGTH 8|VARNUM 8|LABEL $|FORMAT $49|TYPE $1 |DDTYPE $| - |---|---|---|---|---|---|---| - |AIR|8|2|international airline travel (thousands)|8.|N|NUMERIC| - |DATE|8|1|DATE|MONYY.|N|DATE| - |REGION|3|3|REGION|$3.|C|CHARACTER| + |FMTNAME:$32.|START:$16.|END:$16.|LABEL:$256.|MIN:best.|MAX:best.|DEFAULT:best.|LENGTH:best.|FUZZ:best.|PREFIX:$2.|MULT:best.|FILL:$1.|NOEDIT:best.|TYPE:$1.|SEXCL:$1.|EEXCL:$1.|HLO:$13.|DECSEP:$1.|DIG3SEP:$1.|DATATYPE:$8.|LANGUAGE:$8.| + |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| + |WHICHPATH|0|0|path1|1|40|28|28|1E-12||0||0|N|N|N| | | | | | + |WHICHPATH|`**OTHER**`|`**OTHER**`|big fat problem if not path1|1|40|28|28|1E-12||0||0|N|N|N|O| | | | |

SAS Macros

@li mf_dedup.sas @@ -7631,6 +7627,7 @@ drop table &ds1; data _null_; file &fref; length line $32767; + call missing(line); put '|' %local i var fmt; %do i=1 %to %sysfunc(countw(&vars)); @@ -8360,7 +8357,7 @@ select distinct memname into: table_list separated by ' ' /* overlay actual sort key if it exists */ data _null_; set work.&tempds1; - call symputx('sortkey',pk_fields); + call symputx('sortkey',coalescec(pk_fields,symget('sortkey'))); run; diff --git a/base/mp_getformats.sas b/base/mp_getformats.sas index 1228ec4..e7ee939 100644 --- a/base/mp_getformats.sas +++ b/base/mp_getformats.sas @@ -18,30 +18,26 @@ @param [out] outsummary= (work.mp_getformats_summary) Output dataset containing summary definitions - structure taken from dictionary.formats as follows: -|libname:$8.|memname:$32.|path:$1024.|objname:$32.|fmtname:$32.|fmttype:$1.|source:$1.|minw:best.|mind:best.|maxw:best.|maxd:best.|d -efw:best.|defd:best.| -|---|---|---|---|---|---|---|---|---|---|---|---|---| -|||||$|F|B|1|0|32767|0|1|0| -|||||$|I|B|1|0|32767|0|1|0| -|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWIANYDT|$ANYDTIF|I|U|1|0|60|0|19|0| -|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWFASCII|$ASCII|F|U|1|0|32767|0|1|0| -|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWIASCII|$ASCII|I|U|1|0|32767|0|1|0| -|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWFBASE6|$BASE64X|F|U|1|0|32767|0|1|0| -|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWIBASE6|$BASE64X|I|U|1|0|32767|0|1|0| -|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWFBIDI|$BIDI|F|U|1|0|32767|0|1|0| -|||||$BINARY|F|B|1|0|32767|0|8|0| -|||||$BINARY|I|B|1|0|32767|0|8|0| + + |libname:$8.|memname:$32.|path:$1024.|objname:$32.|fmtname:$32.|fmttype:$1.|source:$1.|minw:best.|mind:best.|maxw:best.|maxd:best.|defw:best.|defd:best.| + |---|---|---|---|---|---|---|---|---|---|---|---|---| + | | | | |$|F|B|1|0|32767|0|1|0| + | | | | |$|I|B|1|0|32767|0|1|0| + | | |/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWIANYDT|$ANYDTIF|I|U|1|0|60|0|19|0| + | | |/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWFASCII|$ASCII|F|U|1|0|32767|0|1|0| + | | |/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWIASCII|$ASCII|I|U|1|0|32767|0|1|0| + | | |/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWFBASE6|$BASE64X|F|U|1|0|32767|0|1|0| + @param [out] outdetail= (0) Provide an output dataset in which to export all the custom format definitions (from proc format CNTLOUT). Definitions: https://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/viewer.htm#a002473477.htm Sample data: - |NAME $|LENGTH 8|VARNUM 8|LABEL $|FORMAT $49|TYPE $1 |DDTYPE $| - |---|---|---|---|---|---|---| - |AIR|8|2|international airline travel (thousands)|8.|N|NUMERIC| - |DATE|8|1|DATE|MONYY.|N|DATE| - |REGION|3|3|REGION|$3.|C|CHARACTER| + |FMTNAME:$32.|START:$16.|END:$16.|LABEL:$256.|MIN:best.|MAX:best.|DEFAULT:best.|LENGTH:best.|FUZZ:best.|PREFIX:$2.|MULT:best.|FILL:$1.|NOEDIT:best.|TYPE:$1.|SEXCL:$1.|EEXCL:$1.|HLO:$13.|DECSEP:$1.|DIG3SEP:$1.|DATATYPE:$8.|LANGUAGE:$8.| + |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| + |WHICHPATH|0|0|path1|1|40|28|28|1E-12||0||0|N|N|N| | | | | | + |WHICHPATH|`**OTHER**`|`**OTHER**`|big fat problem if not path1|1|40|28|28|1E-12||0||0|N|N|N|O| | | | |

SAS Macros

@li mf_dedup.sas diff --git a/base/mp_mdtablewrite.sas b/base/mp_mdtablewrite.sas index d3a9e45..0690552 100644 --- a/base/mp_mdtablewrite.sas +++ b/base/mp_mdtablewrite.sas @@ -62,6 +62,7 @@ data _null_; file &fref; length line $32767; + call missing(line); put '|' %local i var fmt; %do i=1 %to %sysfunc(countw(&vars)); diff --git a/base/mp_sortinplace.sas b/base/mp_sortinplace.sas index 6d58a43..23acd60 100644 --- a/base/mp_sortinplace.sas +++ b/base/mp_sortinplace.sas @@ -83,7 +83,7 @@ /* overlay actual sort key if it exists */ data _null_; set work.&tempds1; - call symputx('sortkey',pk_fields); + call symputx('sortkey',coalescec(pk_fields,symget('sortkey'))); run;