Veröffentlicht am :
Makro MIXTE

Dienstprogramm-Makro zur Bestimmung der Dateierweiterung von SAS-Katalogen

Dieser Code ist auch verfügbar auf: Français English Español
Dieses Makro analysiert eine übergebene SAS©-Versionsnummer, um die entsprechende SAS©-Katalogdateierweiterung zurückzugeben. Es verarbeitet verschiedene Versionsformate (z.B. 'V8', '8.2', '802'), indem es sie normalisiert. Es ist ein Kompatibilitätswerkzeug, um mit Katalogen aus verschiedenen SAS©-Versionen zu arbeiten. Wenn keine Version angegeben ist, versucht es, die Erweiterung für die aktuell ausgeführte SAS©-Version zu bestimmen. Der Quellcode wird unter der 'GNU General Public License' veröffentlicht.
Datenanalyse

Type : MIXTE


Das Makro verwendet keine Datensätze. Es basiert auf Informationen, die entweder extern (ein vom Benutzer beim Aufruf bereitgestellter Textparameter) oder intern (die Version des aktuellen SAS-Systems) sein können.

1 Codeblock
MACRO
Erklärung :
Dieser Block definiert das Makro '%_catext'. Es nimmt ein Argument 'arg1' (mit dem Alias 'version') entgegen, das die SAS-Version darstellt. Der Code normalisiert diese Zeichenkette: Er wandelt sie in Großbuchstaben um, entfernt das Präfix 'V' und Punkte und füllt sie dann mit Nullen auf. Eine Reihe von '%if/%then/%else'-Bedingungen wählt die geeignete Katalogerweiterung ('sas7bcat', 'sc2' usw.) basierend auf der normalisierten Versionsnummer aus. Wenn kein Argument angegeben wird, basiert es auf der Version der aktiven SAS-Sitzung. Die Ausführung dieses Makros hängt von der Verfügbarkeit anderer Nicht-Standard-Makros (%_substr, %_repeat, %_version, %_unwind) ab, die in diesem Code nicht definiert sind.
Kopiert!
1%macro _catext(arg1, version=&arg1);
2 
3%IF %LENGTH(&version) %THEN %DO;
4 %local i;
5 %let version=%upcase(&version);
6 
7 %IF %_substr(&version, 1, 1)=V %THEN %let version=%_substr(&version, 2);
8 
9 %let i=%index(&version, .);
10 
11 %IF &i %THEN %let version=%_substr(&version, 1, &i-1)%_substr(&version, &i+1);
12 
13 %let version=&version%_repeat(0, 3-%LENGTH(&version));
14
15 %IF &version>=700 %THEN sas7bcat;
16 %ELSE %IF &version=607 | &version=609 %THEN sct??;
17 %ELSE %IF &version=608 | &version=610 %THEN sc2;
18 %ELSE %IF &version=603 %THEN sct;
19 %ELSE %_unwind(sct??, sc2, sct??);
20%END;
21%ELSE %DO;
22 %IF %_version(7) %THEN sas7bcat;
23 %ELSE %_unwind(sct??, sc2, sct??);
24%END;
25 
26%mend _catext;
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.
Urheberrechtsinformationen : Copyright (c) 2001-2004 Rodney Sparapani. Der Code wird unter den Bedingungen der 'GNU General Public License' verbreitet.