summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Physikunit.pas60
-rw-r--r--input.plap1
2 files changed, 51 insertions, 10 deletions
diff --git a/Physikunit.pas b/Physikunit.pas
index 7847c28..441e2fd 100644
--- a/Physikunit.pas
+++ b/Physikunit.pas
@@ -66,6 +66,7 @@ type
function dump: string;
procedure schreibeKopf;
procedure speichereWerte(gitter: tGitter; sT, sDX: double);
+ procedure verzeichnisAufraeumen;
end;
{ tTeilchenSpezies }
@@ -422,6 +423,35 @@ begin
end;
end;
+procedure tAusgabeDatei.verzeichnisAufraeumen;
+var
+ sr: tSearchRec;
+ err: longint;
+ dats: tStringList;
+ pfad: string;
+ i: longint;
+begin
+ dats:=tStringList.create;
+ pfad:=extractfilepath(pre+'00'+suf);
+ err:=findFirst(pfad+'*',$00,sr);
+ while err=0 do begin
+ if (sr.name<>'.') and (sr.name<>'..') then
+ dats.add(pfad+sr.name);
+ err:=findNext(sr);
+ end;
+ findClose(sr);
+ for i:=0 to dats.count-1 do
+ if (rightStr(dats[i],4)<>'.dat') and
+ (rightStr(dats[i],4)<>'.png') and
+ (rightStr(dats[i],4)<>'.bmp') then begin
+ pro.schreibe('Zu löschende Datei ist keine .dat, .bmp oder .png!',true);
+ raise exception.create('Zu löschende Datei ist keine .dat, .bmp oder .png!');
+ end;
+ for i:=0 to dats.count-1 do
+ deleteFile(dats[i]);
+ dats.free;
+end;
+
// tTeilchenSpezies ************************************************************
constructor tTeilchenSpezies.create;
@@ -1243,16 +1273,17 @@ end;
constructor tSimulation.create(inName: string; protokollant: tProtokollant; name: string);
var
- ifile: tMyStringlist;
- zeitverfahren: tZeitverfahren;
- s,t,aSuffix,aPrefix: string;
- dX,breite,dP,pMax: double;
- i: longint;
- kvs: tKnownValues;
- teilchen: array of tTeilchenSpezies;
- lichter: tMyStringlist;
- pro: tProtokollant;
- na: pSigActionRec;
+ ifile: tMyStringlist;
+ zeitverfahren: tZeitverfahren;
+ s,t,aSuffix,aPrefix: string;
+ dX,breite,dP,pMax: double;
+ i: longint;
+ kvs: tKnownValues;
+ teilchen: array of tTeilchenSpezies;
+ lichter: tMyStringlist;
+ pro: tProtokollant;
+ na: pSigActionRec;
+ ausgabeverzeichnisAufraeumen: boolean;
begin
inherited create;
prot:=tProtokollant.create(protokollant,name);
@@ -1280,6 +1311,7 @@ begin
tEnde:=100;
breite:=10.0;
fortschrittsAnzeige:=false;
+ ausgabeverzeichnisAufraeumen:=false;
gotSigusr1:=false;
gotSigterm:=false;
gotSigint:=false;
@@ -1371,6 +1403,10 @@ begin
fortschrittsAnzeige:=false;
continue;
end;
+ if s='Ausgabeverzeichnis aufräumen' then begin
+ ausgabeverzeichnisAufraeumen:=true;
+ continue;
+ end;
prot.schreibe('Unbekannter Befehl '''+s+''' in Parameterdatei '''+inName+''' im Bereich allgemein!',true);
raise exception.create('Fehler in tSimulation.create!');
until false;
@@ -1496,6 +1532,10 @@ begin
raise exception.create('Fehler in tSimulation.create!');
end;
+ if ausgabeverzeichnisAufraeumen then
+ for i:=0 to length(ausgabedateien)-1 do
+ ausgabeDateien[i].verzeichnisAufraeumen;
+
if dT<0 then
dT:=dX/10;
if sDT<0 then
diff --git a/input.plap b/input.plap
index e0bcd9d..4a699ad 100644
--- a/input.plap
+++ b/input.plap
@@ -15,6 +15,7 @@ allgemein
!setze $breite: (5 * λ)
breite $breite
mit Fortschrittsanzeige
+ Ausgabeverzeichnis aufräumen
allgemeinEnde
ausgaben