Macro XSET (from Fraktal SAS Programming)

Aus phenixxenia.org
Zur Navigation springen Zur Suche springen
Die Druckversion wird nicht mehr unterstützt und kann Darstellungsfehler aufweisen. Bitte aktualisiere deine Browser-Lesezeichen und verwende stattdessen die Standard-Druckfunktion des Browsers.

Zurück

Übersicht

Vorwärts

This Macro transfers the environment from the particular operating system to SAS Macro variables.

  • Characters "not appreciated" by SAS are removed from variable values.
  • If a specific variable name is supplied, this will be the only one transferred.
Code executed Function performed
%MACRO xset(xvar);
Start Macro definition with name and positional parameter xvar
filename path pipe "set" lrecl = 2048;
Open source for text data of type pipe pointing to OS command
data _NULL_;
Start datastep run group
length xvar $256 xval $1024;
Declare variables xvar and xval by length in bytes
infile path dlm = '=';
Utilize data stream from data source path
input xvar $ xval $;
Define structure of data stream path with variables xvar and xval
xvar = upcase(translate(xvar,'_','(-)'));
Remove unwanted characters from variable xvar
%IF %LENGTH(&XVAR.) != 0 %THEN %DO;
Specify condition on macro parameter xvar for using code segment
if trim(xvar) = "%UPCASE(&XVAR.)";
Conditionally executed code
%END;
End condition on macro parameter xvar
call symput(compress(xvar),compress(xval));
Transfer variable values to symbol table
run;
End data step run group
filename path clear;
Close source for text data
%MEND xset;
End Macro definition with name

Zurück

Übersicht

Vorwärts