summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2018-05-24 09:53:16 +0200
committerErich Eckner <git@eckner.net>2018-05-24 09:53:16 +0200
commit3d3e75fa15be7088dd456c001a411ff5953c85b1 (patch)
treef1659bb01933aed59b254ea9477c11f4588b590b
parent8cec9ec134d56d911d10953758126fe2b86ac597 (diff)
downloadepost-3d3e75fa15be7088dd456c001a411ff5953c85b1.tar.xz
ermittleMittelwert neu
-rw-r--r--epost.lpr7
-rw-r--r--epostunit.pas40
2 files changed, 47 insertions, 0 deletions
diff --git a/epost.lpr b/epost.lpr
index 718eb2c..2cea78d 100644
--- a/epost.lpr
+++ b/epost.lpr
@@ -474,6 +474,13 @@ begin
end;
continue;
end;
+ if istDasBefehl('ermittle Mittelwert',s,bekannteBefehle,true) then begin
+ if not ermittleMittelwert(syntaxTest,s) then begin
+ aufraeumen;
+ halt(1);
+ end;
+ continue;
+ end;
if istDasBefehl('skaliere',s,bekannteBefehle,true) then begin
i:=findeWerte(s,nil,@wertes,@konturen,false);
if i<0 then begin
diff --git a/epostunit.pas b/epostunit.pas
index 92aa994..e5e1db7 100644
--- a/epostunit.pas
+++ b/epostunit.pas
@@ -484,6 +484,7 @@ function externerBefehl(sT: boolean; s: string): boolean;
procedure warteAufExterneBefehle;
procedure beendeExterneBefehleWennFertig;
function ermittleAnstieg(sT: boolean; s: string): boolean;
+function ermittleMittelwert(sT: boolean; s: string): boolean;
var
allePaletten: tPalettenArray;
@@ -9267,6 +9268,45 @@ begin
result:=true;
end;
+function ermittleMittelwert(sT: boolean; s: string): boolean;
+var
+ i,j: longint;
+ name,datei: string;
+ wert: extended;
+begin
+ result:=false;
+ name:=erstesArgument(s);
+ if not startetMit('aus ',s) then begin
+ gibAus('Syntaxfehler, erwarte: ''ermittle Mittelwert $name aus $datei [Wertespalte [Gewichtespalte]]''.',3);
+ exit;
+ end;
+ datei:=erstesArgument(s);
+ if not fileExists(datei) then begin
+ gibAus('Datei '''+datei+''' existiert nicht um Werte für Mittelwertermittlung zu lesen!',3);
+ exit;
+ end;
+ try
+ if s='' then
+ i:=0
+ else
+ i:=strToInt(erstesArgument(s));
+ if s='' then
+ j:=-1
+ else
+ j:=strToInt(s);
+ except
+ gibAus('Syntaxfehler, erwarte: ''ermittle Mittelwert $name aus $datei [Wertespalte [Gewichtespalte]]''.',3);
+ exit;
+ end;
+ if sT then begin
+ // Wir brauchen einen sinnvollen Wert zum Syntaxtest, aber dann müssen wir
+ // ihn später nicht noch einmal berechnen.
+ wert:=matheunit.ermittleMittelwert(shellExpand(datei),i,j);
+ globaleWerte.add(name,wert);
+ end;
+ result:=true;
+end;
+
var
i: longint;