Das Makro verarbeitet keine externen Daten oder SASHELP-Daten direkt. Es operiert auf Systemoptionen und verwendet automatische Makrovariablen (`&sysscp`, `&sysver`) für seine interne Logik. Die auf die Option FORMCHAR angewendeten Werte sind innerhalb des Makros definierte Konstanten.
1 Codeblock
MACRO
Erklärung : Dieser Block definiert das FORMCHAR-Makro. Er beginnt mit bedingten Prüfungen, um sicherzustellen, dass der Code unter Windows (`%if &sysscp ^= WIN`) und mit einer kompatiblen SAS-Version (gleich oder größer 6.11, `%if &sysver < 6.11`) ausgeführt wird. Wenn diese Bedingungen nicht erfüllt sind, werden Fehlermeldungen angezeigt. Anschließend wird der Parameter `chartype` in Großbuchstaben umgewandelt (`%upcase`). Bedingte Anweisungen `%if/%else %if` werden verwendet, um den Wert zu bestimmen, der der Systemoption `FORMCHAR` zugewiesen werden soll. Wenn `chartype` mit 'STANDARD' (oder 'STD', 'ASCII') übereinstimmt, werden ASCII-Zeichen verwendet. Wenn `chartype` mit 'LINEDRAW' (oder 'LINE', 'DRAW') übereinstimmt, wird eine spezifische Hexadezimalzeichenfolge zugewiesen. Jedes andere Argument führt zu einer Fehlermeldung.
Kopiert!
/* Select either "standard" or "linedraw" characters for FORMCHAR */
%macro formchar ( chartype /* STANDARD or LINEDRAW */
) ;
/* ------------------------------------------------------------
MODULE: FORMCHAR
PURPOSE: Resets the value of the FORMCHAR system option
to use either "linedraw" characters from the SAS
Monospace font or "standard" characters (+- etc.)
for box characters in TABULATE and other PROCs.
Generates an OPTIONS statement and may be used
wherever that is accepted.
CLASS: General SAS statement.
USAGE: %FORMCHAR(LINEDRAW)
PARAMETERS: R chartype Must be either
LINEDRAW, LINE, DRAW or
STANDARD, STD, ASCII
SIDE EFFECTS: None.
SYSTEMS: Windows, 6.11 and higher.
HISTORY: 25feb96 MDR
DOCUMENT: Here.
SUPPORT: Mike Rhoads <rhoadsm1 @westat.com>
------------------------------------------------------------
*/
%if &sysscp ^= WIN %then
%put ERROR: The FORMCHAR macro is only available under Windows.;
%else %if &sysver < 6.11 %then
%put ERROR: The FORMCHAR macro is not available for versions prior to 6.11.;
%else %do;
%let chartype = %upcase(&chartype);
%if %index(STD STANDARD ASCII,&chartype)>0 %then %do;
OPTIONS FORMCHAR = '|----|+|---+=|-/\<>*';
%end;
%else %if %index(LINEDRAW,&chartype)>0 %then %do;
OPTIONS FORMCHAR = '82838485868788898A8B8C2B3D7C2D2F5C3C3E2A'X;
%end;
%else
%put ERROR: Argument to FORMCHAR must be LINEDRAW or STANDARD.;
%end;
%mend FORMCHAR ;
1
/* Select either "standard" or "linedraw" characters for FORMCHAR */
2
%macro formchar ( chartype /* STANDARD or LINEDRAW */
%put ERROR: Argument to FORMCHAR must be LINEDRAW or STANDARD.;
44
%END;
45
46
%mend FORMCHAR ;
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 : Ersteller: MDR, 25. Februar 1996. Support: Mike Rhoads <rhoadsm1 @westat.com>
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.