Macro XSET (from Fraktal SAS Programming): Unterschied zwischen den Versionen

Aus phenixxenia.org
Zur Navigation springen Zur Suche springen
Wolf-Dieter Batz (Diskussion | Beiträge)
KKeine Bearbeitungszusammenfassung
Wolf-Dieter Batz (Diskussion | Beiträge)
KKeine Bearbeitungszusammenfassung
Zeile 15: Zeile 15:
|
|
;%MACRO xset(xvar);
;%MACRO xset(xvar);
|Start Macro definition with name and positional parameter 'xvar'
|Start Macro definition with name and positional parameter ''xvar''
|-
|-
|
|
:filename path pipe "set" lrecl = 2048;
:filename path pipe "set" lrecl = 2048;
|
|Open source for text data of type ''pipe'' pointing to OS command
|-
|-
|
|
;data _NULL_;
;data _NULL_;
|
|Start datastep run group
|-
|-
|
|
:length xvar $256 xval $1024;
:length xvar $256 xval $1024;
|
|Declare variables ''xvar'' and ''xval'' by length in bytes
|-
|-
|
|
:infile path dlm = '=';
:infile path dlm = '=';
|
|Utilize data stream from data source ''path''
|-
|-
|
|
:input xvar $ xval $;
:input xvar $ xval $;
|
|Define structure od data stream ''path'' with variables xvar and xval
|-
|-
|
|
:xvar = upcase(translate(xvar,'_','(-)'));
:xvar = upcase(translate(xvar,'_','(-)'));
|
|Remove unwanted characters from variable ''xvar''
|-
|-
|
|
;%IF %LENGTH(&XVAR.) <> 0 %THEN %DO;
;%IF %LENGTH(&XVAR.) <> 0 %THEN %DO;
|
|Specify condition on macro parameter ''xvar'' for using code segment
|-
|-
|
|
:if trim(xvar) = "%UPCASE(&XVAR.)";
:if trim(xvar) = "%UPCASE(&XVAR.)";
|
|Conditionally executed code
|-
|-
|
|
;%END;
;%END;
|
|End condition on macro parameter ''xvar''
|-
|-
|
|
:call symput(compress(xvar),compress(xval));
:call symput(compress(xvar),compress(xval));
|
|Transfer variable values to symbol table
|-
|-
|
|
;run;
;run;
|
|End data step run group
|-
|-
|
|
:filename path clear;
:filename path clear;
|
|Close source for text data
|-
|-
|
|

Version vom 29. Juli 2014, 16:50 Uhr

Zurück

Übersicht

Vorwärts

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 od 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