Das Skript liest keine Quelldaten. Sein Zweck ist es, eine wiederverwendbare Funktion zu erstellen, die selbst Textdaten, die als Parameter übergeben werden, in eine Datei im Dateisystem schreibt. Die Herkunft der von der Funktion verarbeiteten Daten ist daher extern zu diesem Skript, aber intern zu ihrem eigenen Aufruf.
1 Codeblock
PROC FCMP
Erklärung : Dieser Block wird ausgeführt, wenn `wrap=YES`. Er verwendet `PROC FCMP`, um eine neue Funktion `mcf_string2file` zu definieren und zu kompilieren. Die Funktion verwendet die SAS-Dateifunktionen (`filename`, `fopen`, `fput`, `fwrite`, `fclose`), um eine Zeichenkette in eine Datei zu schreiben. Sie gibt 0 bei Erfolg und -1 bei einem Fehler zurück (z.B. Datei konnte nicht geöffnet werden).
Kopiert!
proc fcmp outlib=&lib..&cat..&pkg;
function mcf_string2file(filepath $, string $, mode $);
if mode='APPEND' then fmode='a';
else fmode='o';
length fref $8;
rc=filename(fref,filepath);
if (rc ne 0) then return( -1 );
fid = fopen(fref,fmode);
if (fid = 0) then return( -1 );
rc=fput(fid, string);
rc=fwrite(fid);
rc=fclose(fid);
rc=filename(fref);
return(0);
endsub;
quit;
1
PROC FCMP outlib=&lib..&cat..&pkg;
2
3
function mcf_string2file(filepath $, string $, mode $);
4
IF mode='APPEND'THEN fmode='a';
5
ELSE fmode='o';
6
LENGTH fref $8;
7
rc=filename(fref,filepath);
8
IF (rc ne 0) THEN return( -1 );
9
fid = fopen(fref,fmode);
10
IF (fid = 0) THEN return( -1 );
11
rc=fput(fid, string);
12
rc=fwrite(fid);
13
rc=fclose(fid);
14
rc=filename(fref);
15
return(0);
16
endsub;
17
18
19
QUIT;
2 Codeblock
OPTIONS
Erklärung : Dieser Makro-Codeblock überprüft, ob die Funktionsbibliothek (`&lib..&cat`) bereits in der Systemoption `CMPLIB` vorhanden ist. Wenn nicht, wird sie dynamisch über `options insert=(CMPLIB=...)` hinzugefügt. Dies stellt sicher, dass die neu erstellte FCMP-Funktion sofort in der SAS-Sitzung verfügbar ist.
Kopiert!
/* insert the CMPLIB if not already there */
%let cmpval=%sysfunc(getoption(cmplib));
%let found=0;
%do i=1 %to %sysfunc(countw(&cmpval,%str( %(%))));
%let var=%scan(&cmpval,&i,%str( %(%)));
%if &var=&lib..&cat %then %let found=1;
%end;
%if &found=0 %then %do;
options insert=(CMPLIB=(&lib..&cat));
%end;
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.
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.