1
0
mirror of https://github.com/sasjs/core.git synced 2026-01-16 04:50:05 +00:00

Merge pull request #141 from sasjs/dirlistfix

fix: dirlist logic
This commit is contained in:
Allan Bowe
2022-01-11 12:13:01 +02:00
committed by GitHub
2 changed files with 30 additions and 20 deletions

25
all.sas
View File

@@ -4055,18 +4055,23 @@ run;
* The above transpose can mean that some updates create additional columns. * The above transpose can mean that some updates create additional columns.
* This necessitates the occasional use of datastep over proc append. * This necessitates the occasional use of datastep over proc append.
*/ */
%local basevars appvars usedatastep; %if %mf_existds(&outds) %then %do;
%let basevars=%mf_getvarlist(&outds); %local basevars appvars newvars;
%let appvars=%mf_getvarlist(&out_ds); %let basevars=%mf_getvarlist(&outds);
%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars)); %let appvars=%mf_getvarlist(&out_ds);
%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));
%if %mf_existds(&outds) and &newvars>0 %then %do; %if &newvars>0 %then %do;
data &outds; data &outds;
set &outds &out_ds; set &outds &out_ds;
run; run;
%end;
%else %do;
proc append base=&outds data=&out_ds force nowarn;
run;
%end;
%end; %end;
%else %do; %else %do;
proc append base=&outds data=&out_ds force nowarn; proc append base=&outds data=&out_ds;
run; run;
%end; %end;

View File

@@ -198,18 +198,23 @@ run;
* The above transpose can mean that some updates create additional columns. * The above transpose can mean that some updates create additional columns.
* This necessitates the occasional use of datastep over proc append. * This necessitates the occasional use of datastep over proc append.
*/ */
%local basevars appvars usedatastep; %if %mf_existds(&outds) %then %do;
%let basevars=%mf_getvarlist(&outds); %local basevars appvars newvars;
%let appvars=%mf_getvarlist(&out_ds); %let basevars=%mf_getvarlist(&outds);
%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars)); %let appvars=%mf_getvarlist(&out_ds);
%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));
%if %mf_existds(&outds) and &newvars>0 %then %do; %if &newvars>0 %then %do;
data &outds; data &outds;
set &outds &out_ds; set &outds &out_ds;
run; run;
%end;
%else %do;
proc append base=&outds data=&out_ds force nowarn;
run;
%end;
%end; %end;
%else %do; %else %do;
proc append base=&outds data=&out_ds force nowarn; proc append base=&outds data=&out_ds;
run; run;
%end; %end;