SAS-Links: |
meld1.sas |
if mod(_N_,10000)=0 then put "Schritt xyz: " _N_ commax15.; |
Falls man weiß, wieviele Datensätze bearbeitet werden (diese Information erhält man etwa mit nobs=ende hinter der Datenquelle (set blablubb nobs=ende)), kann man diese Information mit ausgeben:
meld2.sas |
if mod(_N_,10000)=0 then put "Schritt xyz: " _N_ commax15. " von " ende commax15.; |
loesch1.sas |
proc sql; drop table LIBRARY.DATASET; quit; |
loesch2.sas |
proc datasets lib=LIBRARY nolist; delete DATASET; quit; |
loesch3.sas |
%include '...\pfad\pfad\pfad\m_loesch_ds.sas'; %m_loesch_ds(LIBRARY, DATASET); |
m_loesch_ds.sas |
%macro m_loesch_ds(lbname, dsname); %if %sysfunc(exist(&lbname..&dsname.)) %then %do; proc datasets lib=&lbname. nolist; delete &dsname.; quit; %put Der Datensatz "&dsname." wurde gelöscht.; %end; %else %put Der Datensatz "&dsname." existiert nicht.; %mend; |
auskoppeln.sas |
options missing=" "; data _null_; file "...\pfad\pfad\pfad\meine_text_datei.txt" ls = 1000; set MEINELIB.MEINDATASET; put variable1 '09'x variable2 '09'x variable3 ; run; options missing="."; |
einlesen.sas |
data NEUESDATASET; format var1 15. var2 $254. var3 $500. var4 1. ; informat var1 15. var2 $254. var3 $500. var4 1. ; infile "...\pfad\pfad\pfad\meine_text_datei.txt" linesize = 1000 dlm = '09'x dsd missover ; input var1 var2 $ var3 $ var4 ; run; |
mkdir.sas |
options noxwait; x "mkdir ...\pfad\pfad\pfad"; options xwait; |
oracle.sas |
libname x oracle path=DBNAME user=USERNAME preserve_tab_names=no; |
dialog.sas |
filename sascbtbl 'pfad/zu/der/Datei/winapi.txt'; data _null_; length rc hWnd style 8 text caption $200 ; hWnd = 0; text = "ANZUZEIGENDER TEXT"; caption = 'ANZUZEIGENDER TITEL'; style = 0*4096 + 0*256 + 2*16 + 0*1; /* ------------------------------------- 0020 = Question mark icon + OK ------------------------------------- */ /* ------------------------------------- Buttons: OK = 0 OK/Cancel = 1 Abort/Retry/Ignore = 2 Yes/No/Cancel = 3 Yes/No = 4 Retry/Cancel = 5 Icons: Stop Sign = 10 Question Mark = 20 Exclamation Mark = 30 Informing Sign = 40 Return: Error state = 0 OK = 1 Cancel = 2 Abort = 3 Retry = 4 Ignore = 5 Yes = 6 No = 7 ------------------------------------- */ rc = modulen('*e', 'MessageBoxA', hWnd, text, caption, style); if (rc=0) then put 'ERROR: Cannot create message box'; put rc=; run; |
Die oben angezogene Datei pfad/zu/der/Datei/winapi.txt sieht so aus:
winapi.txt |
routine MessageBoxA module=USER32 returns=SHORT stackpop=CALLED minarg=4 maxarg=4 ; arg 1 input format=pib4. byvalue; arg 2 input format=$cstr200.; arg 3 input format=$cstr200.; arg 4 input format=pib4. byvalue; |
perl1.sas |
x "perl \\pfad\zum\perlskript.pl PARAMETER1 PARAMETER2 ..."; |
Hierbei muss das Perlprogramm das Ergebnis nach STDOUT schreiben.
perl2.sas |
filename rb pipe "perl \\pfad\zum\perlskript.pl PARAMETER1 ..." console=min; data RUECKLES; format var1 15. var2 $254. var3 $500. ; informat var1 15. var2 $254. var3 $500. ; infile rb linesize = 1000 dlm = '09'x dsd missover ; input var1 var2 $ var3 $ ; run; |