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;
|