Veröffentlicht am :
Macro CREATION_INTERNE

Pfad-Testmakro

Dieser Code ist auch verfügbar auf: English Español Français
Dieses Makro namens 'testit' wurde entwickelt, um das Verhalten der %SYSFUNC(DEQUOTE)-Funktion bei der Verarbeitung von Makroparametern zu veranschaulichen, die Anführungszeichen enthalten können. Es verwendet einen DATA _NULL_-Schritt, um den Wert des Parameters 'path' im SAS©-Log anzuzeigen, nachdem mögliche Anführungszeichen (einfache oder doppelte) entfernt wurden. Die aufeinanderfolgenden Aufrufe des Makros 'testit' zeigen, wie SAS© Zeichenketten handhabt, ob sie roh, in einfachen Anführungszeichen oder in doppelten Anführungszeichen übergeben werden. Dieses Skript ist nützlich, um die Zeichenkettenmanipulation in der SAS©-Makroumgebung zu verstehen.
Datenanalyse

Type : CREATION_INTERNE


Das Skript verarbeitet oder erstellt keine vorhandenen SAS-Daten. Es manipuliert und zeigt eine literale Zeichenkette an, die als Makroparameter übergeben wird, wobei ausschließlich die Konsole (Log) für die Ausgabe verwendet wird.

1 Codeblock
MACRO DEFINITION & DATA STEP
Erklärung :
Dieser Codeblock definiert und ruft das Makro `testit` auf. Das Makro akzeptiert einen Parameter `path`. Innerhalb des Makros wird ein `DATA _NULL_`-Schritt verwendet, um direkt in das SAS-Log zu schreiben. Die Funktion `%SYSFUNC(DEQUOTE(&path))` ist hier entscheidend: Sie entfernt Anführungszeichen (einfache oder doppelte) aus dem an den Parameter `path` übergebenen Wert, bevor dieser angezeigt wird. Die drei nachfolgenden Aufrufe von `%testit` zeigen, wie die Funktion `DEQUOTE` verschiedene Syntaxen zur Übergabe von Zeichenketten (ohne Anführungszeichen, mit einfachen Anführungszeichen, mit doppelten Anführungszeichen) verarbeitet und sicherstellt, dass das im Log angezeigte Ergebnis immer der Pfad ohne Anführungszeichen ist.
Kopiert!
1%macro testit(path=);
2DATA _null_;
3put "%sysfunc(dequote(&path))";
4RUN;
5%mend testit;
6 
7%testit(path=D:\Projects\);
8%testit(path='D:\Projects\');
9%testit(path="D:\Projects\");
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.