diff options
author | Erich Eckner <git@eckner.net> | 2017-07-17 16:04:40 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2017-07-20 09:37:46 +0200 |
commit | 6b0861f3f2803f283f1797f5b43d20770c5cf80c (patch) | |
tree | 2b4fc6b80db4210640758317cb3fe226a5b0149e /epost.lpr | |
parent | 8855bcb10bf294e4ce6f4c828352ec3114690b59 (diff) | |
download | epost-6b0861f3f2803f283f1797f5b43d20770c5cf80c.tar.xz |
any progress
Diffstat (limited to 'epost.lpr')
-rw-r--r-- | epost.lpr | 159 |
1 files changed, 85 insertions, 74 deletions
@@ -8,37 +8,37 @@ uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} - Classes, + classes, { you can add units after this } sysutils, epostunit, mystringlistunit, lowlevelunit; var - maxthreads,i,j,k: longint; - inf,bekannteBefehle: tMyStringlist; + maxThreads,i,j,k: longint; + inf,bekannteBefehle: tMyStringList; s: string; b,syntaxtest,parallelLesen: boolean; wertes: tWerteArray; - Konturen: tKonturenArray; + konturen: tKonturenArray; Warnstufe: tWarnstufe; -procedure werte_aufraeumen; +procedure werteAufraeumen; var i: integer; begin for i:=0 to length(wertes)-1 do if assigned(wertes[i]) then wertes[i].free; - setlength(wertes,0); - for i:=0 to length(Konturen)-1 do - if assigned(Konturen[i]) then - Konturen[i].free; - setlength(Konturen,0); + setLength(wertes,0); + for i:=0 to length(konturen)-1 do + if assigned(konturen[i]) then + konturen[i].free; + setLength(konturen,0); end; procedure aufraeumen; begin - warte_auf_externeBefehle; - werte_aufraeumen; + warteAufExterneBefehle; + werteAufraeumen; inf.free; end; @@ -51,13 +51,13 @@ begin gibAus('oder: '+paramstr(0)+' input.epost -L',3); halt(1); end; - maxthreads:=1; + maxThreads:=1; Warnstufe:=wsStreng; parallelLesen:=false; - setlength(wertes,0); - setlength(Konturen,0); + setLength(wertes,0); + setLength(konturen,0); behalteLogs:=(paramcount=2) and (paramstr(2)='-L'); - inf:=tMyStringlist.create(nil,''); + inf:=tMyStringList.create(nil,''); inf.nichtInSubRoutine('^lösche Werte '); // Zeilen, die hierauf passen, werden nicht an subRoutinen-Aufrufe inf.nichtInSubRoutine('^lösche Kontur '); // von metaReadln gegeben, sondern nach hinten ans Hauptprogramm verschoben inf.loadFromFile(paramstr(1)); @@ -121,18 +121,18 @@ begin end; if istDasBefehl('warte auf externe Befehle',s,bekannteBefehle,false) then begin if not syntaxtest then begin - warte_auf_externeBefehle; + warteAufExterneBefehle; for i:=0 to length(wertes)-1 do wertes[i].warteAufBeendigungDesLeseThreads; end; continue; end; if istDasBefehl('exprtofloat-Test:',s,bekannteBefehle,true) then begin - gibAus('exprtofloat-Test: '+s+'='+floattostr(wertes[length(wertes)-1].exprtofloat(syntaxtest,s)),3); + gibAus('exprtofloat-Test: '+s+'='+floatToStr(wertes[length(wertes)-1].exprToFloat(syntaxtest,s)),3); continue; end; if istDasBefehl('dupliziere',s,bekannteBefehle,true) then begin - i:=findeWerte(erstesArgument(s),nil,@wertes,@Konturen,false); + i:=findeWerte(erstesArgument(s),nil,@wertes,@konturen,false); if i<0 then begin aufraeumen; halt(1); @@ -142,7 +142,7 @@ begin aufraeumen; halt(1); end; - j:=findeWerte(s,inf,@wertes,@Konturen,true); + j:=findeWerte(s,inf,@wertes,@konturen,true); if j<0 then begin aufraeumen; halt(1); @@ -151,19 +151,19 @@ begin continue; end; if istDasBefehl('erzeuge Dummy-Werte',s,bekannteBefehle,true) then begin - i:=findeWerte(s,inf,@wertes,@Konturen,true); + i:=findeWerte(s,inf,@wertes,@konturen,true); if i<0 then begin aufraeumen; halt(1); end; wertes[i].free; - wertes[i]:=tWerte.create(@Konturen,@wertes); + wertes[i]:=tWerte.create(@konturen,@wertes); wertes[i].bezeichner:=s; continue; end; if istDasBefehl('Daten einlesen',s,bekannteBefehle,true) then begin b:=not startetMit('(ohne Ausgaben)',s); - i:=findeWerte(s,inf,@wertes,@Konturen,true); + i:=findeWerte(s,inf,@wertes,@konturen,true); if i<0 then begin aufraeumen; halt(1); @@ -175,25 +175,25 @@ begin halt(1); end; if istDasBefehl('Ascii laden',s,bekannteBefehle,true) then begin - i:=findeWerte(erstesArgument(s),inf,@wertes,@Konturen,true); + i:=findeWerte(erstesArgument(s),inf,@wertes,@konturen,true); if wertes[i].ladeAscii(syntaxtest,s) then continue; aufraeumen; halt(1); end; if istDasBefehl('Linearkombination',s,bekannteBefehle,true) then begin - i:=findeWerte(s,inf,@wertes,@Konturen,true); + i:=findeWerte(s,inf,@wertes,@konturen,true); if i<0 then begin aufraeumen; halt(1); end; - if wertes[i].berechneLiKo(syntaxtest,inf,maxthreads) then + if wertes[i].berechneLiKo(syntaxtest,inf,maxThreads) then continue; aufraeumen; halt(1); end; if istDasBefehl('Agglomeration',s,bekannteBefehle,true) then begin - i:=findeWerte(s,inf,@wertes,@Konturen,true); + i:=findeWerte(s,inf,@wertes,@konturen,true); if i<0 then begin aufraeumen; halt(1); @@ -204,7 +204,7 @@ begin halt(1); end; if istDasBefehl('teile',s,bekannteBefehle,true) then begin - i:=findeWerte(erstesArgument(s),nil,@wertes,@Konturen,false); + i:=findeWerte(erstesArgument(s),nil,@wertes,@konturen,false); if i<0 then begin aufraeumen; halt(1); @@ -214,7 +214,7 @@ begin aufraeumen; halt(1); end; - j:=findeWerte(erstesArgument(s),nil,@wertes,@Konturen,false); + j:=findeWerte(erstesArgument(s),nil,@wertes,@konturen,false); if j<0 then begin aufraeumen; halt(1); @@ -224,18 +224,18 @@ begin aufraeumen; halt(1); end; - k:=findeWerte(s,inf,@wertes,@Konturen,true); + k:=findeWerte(s,inf,@wertes,@konturen,true); if k<0 then begin aufraeumen; halt(1); end; - if wertes[k].berechneQuotient(syntaxtest,inf,maxthreads,i,j) then + if wertes[k].berechneQuotient(syntaxtest,inf,maxThreads,i,j) then continue; aufraeumen; halt(1); end; if istDasBefehl('multipliziere',s,bekannteBefehle,true) then begin - i:=findeWerte(erstesArgument(s),nil,@wertes,@Konturen,false); + i:=findeWerte(erstesArgument(s),nil,@wertes,@konturen,false); if i<0 then begin aufraeumen; halt(1); @@ -245,7 +245,7 @@ begin aufraeumen; halt(1); end; - j:=findeWerte(erstesArgument(s),nil,@wertes,@Konturen,false); + j:=findeWerte(erstesArgument(s),nil,@wertes,@konturen,false); if j<0 then begin aufraeumen; halt(1); @@ -255,51 +255,51 @@ begin aufraeumen; halt(1); end; - k:=findeWerte(s,inf,@wertes,@Konturen,true); + k:=findeWerte(s,inf,@wertes,@konturen,true); if k<0 then begin aufraeumen; halt(1); end; - if wertes[k].berechneProdukt(syntaxtest,inf,maxthreads,i,j) then + if wertes[k].berechneProdukt(syntaxtest,inf,maxThreads,i,j) then continue; aufraeumen; halt(1); end; if istDasBefehl('FFT2d',s,bekannteBefehle,true) then begin - i:=findeWerte(s,inf,@wertes,@Konturen,true); + i:=findeWerte(s,inf,@wertes,@konturen,true); if i<0 then begin aufraeumen; halt(1); end; - if wertes[i].berechneFFT2d(syntaxtest,inf,maxthreads,Warnstufe) then + if wertes[i].berechneFFT2d(syntaxtest,inf,maxThreads,Warnstufe) then continue; aufraeumen; halt(1); end; if istDasBefehl('FFT',s,bekannteBefehle,true) then begin - i:=findeWerte(s,inf,@wertes,@Konturen,false); + i:=findeWerte(s,inf,@wertes,@konturen,false); if i<0 then begin aufraeumen; halt(1); end; - if wertes[i].berechneFFT(syntaxtest,inf,maxthreads,Warnstufe) then + if wertes[i].berechneFFT(syntaxtest,inf,maxThreads,Warnstufe) then continue; aufraeumen; halt(1); end; if istDasBefehl('fitte Gauße an',s,bekannteBefehle,true) then begin - i:=findeWerte(s,nil,@wertes,@Konturen,false); + i:=findeWerte(s,nil,@wertes,@konturen,false); if i<0 then begin aufraeumen; halt(1); end; - if wertes[i].fitteGausze(syntaxtest,inf,maxthreads) then + if wertes[i].fitteGausze(syntaxtest,inf,maxThreads) then continue; aufraeumen; halt(1); end; if istDasBefehl('Zeitfrequenzanalyse',s,bekannteBefehle,true) then begin - j:=findeWerte(erstesArgument(s),nil,@wertes,@Konturen,false); + j:=findeWerte(erstesArgument(s),nil,@wertes,@konturen,false); if j<0 then begin aufraeumen; halt(1); @@ -309,18 +309,18 @@ begin aufraeumen; halt(1); end; - i:=findeWerte(s,inf,@wertes,@Konturen,true); + i:=findeWerte(s,inf,@wertes,@konturen,true); if i<0 then begin aufraeumen; halt(1); end; - if wertes[i].berechneZeitfrequenzanalyse(syntaxtest,inf,maxthreads,wertes[j],Warnstufe) then + if wertes[i].berechneZeitfrequenzanalyse(syntaxtest,inf,maxThreads,wertes[j],Warnstufe) then continue; aufraeumen; halt(1); end; if istDasBefehl('Verzerrung',s,bekannteBefehle,true) then begin - j:=findeWerte(erstesArgument(s),nil,@wertes,@Konturen,false); + j:=findeWerte(erstesArgument(s),nil,@wertes,@konturen,false); if j<0 then begin aufraeumen; halt(1); @@ -330,18 +330,18 @@ begin aufraeumen; halt(1); end; - i:=findeWerte(s,inf,@wertes,@Konturen,true); + i:=findeWerte(s,inf,@wertes,@konturen,true); if i<0 then begin aufraeumen; halt(1); end; - if wertes[i].berechneVerzerrung(syntaxtest,inf,maxthreads,wertes[j],Warnstufe) then + if wertes[i].berechneVerzerrung(syntaxtest,inf,maxThreads,wertes[j],Warnstufe) then continue; aufraeumen; halt(1); end; if istDasBefehl('lambda',s,bekannteBefehle,true) then begin - j:=findeWerte(erstesArgument(s),nil,@wertes,@Konturen,false); + j:=findeWerte(erstesArgument(s),nil,@wertes,@konturen,false); if j<0 then begin aufraeumen; halt(1); @@ -351,40 +351,51 @@ begin aufraeumen; halt(1); end; - i:=findeWerte(s,inf,@wertes,@Konturen,true); + i:=findeWerte(s,inf,@wertes,@konturen,true); if i<0 then begin aufraeumen; halt(1); end; - if wertes[i].berechneLambdaZuOmegaVerzerrung(syntaxtest,inf,maxthreads,wertes[j]) then + if wertes[i].berechneLambdaZuOmegaVerzerrung(syntaxtest,inf,maxThreads,wertes[j]) then continue; aufraeumen; halt(1); end; if istDasBefehl('entferne Artefakte in',s,bekannteBefehle,true) then begin - i:=findeWerte(s,nil,@wertes,@Konturen,false); + i:=findeWerte(s,nil,@wertes,@konturen,false); if i<0 then begin aufraeumen; halt(1); end; - if wertes[i].entferneArtefakte(syntaxtest,inf,maxthreads) then + if wertes[i].entferneArtefakte(syntaxtest,inf,maxThreads) then continue; aufraeumen; halt(1); end; if istDasBefehl('extrahiere Einhüllende von',s,bekannteBefehle,true) then begin - i:=findeWerte(s,nil,@wertes,@Konturen,false); + i:=findeWerte(s,nil,@wertes,@konturen,false); if i<0 then begin aufraeumen; halt(1); end; - if wertes[i].extrahiereEinhuellende(syntaxtest,inf,maxthreads,Warnstufe) then + if wertes[i].extrahiereEinhuellende(syntaxtest,inf,maxThreads,Warnstufe) then + continue; + aufraeumen; + halt(1); + end; + if istDasBefehl('extrahiere Phase von',s,bekannteBefehle,true) then begin + i:=findeWerte(s,nil,@wertes,@konturen,false); + if i<0 then begin + aufraeumen; + halt(1); + end; + if wertes[i].extrahierePhase(syntaxtest,inf,maxThreads,Warnstufe) then continue; aufraeumen; halt(1); end; if istDasBefehl('integriere',s,bekannteBefehle,true) then begin - j:=findeWerte(erstesArgument(s),nil,@wertes,@Konturen,false); + j:=findeWerte(erstesArgument(s),nil,@wertes,@konturen,false); if j<0 then begin aufraeumen; halt(1); @@ -394,18 +405,18 @@ begin aufraeumen; halt(1); end; - i:=findeWerte(s,inf,@wertes,@Konturen,true); + i:=findeWerte(s,inf,@wertes,@konturen,true); if i<0 then begin aufraeumen; halt(1); end; - if wertes[i].berechneIntegral(syntaxtest,inf,maxthreads,wertes[j]) then + if wertes[i].berechneIntegral(syntaxtest,inf,maxThreads,wertes[j]) then continue; aufraeumen; halt(1); end; if istDasBefehl('korreliere',s,bekannteBefehle,true) then begin - j:=findeWerte(erstesArgument(s),nil,@wertes,@Konturen,false); + j:=findeWerte(erstesArgument(s),nil,@wertes,@konturen,false); if j<0 then begin aufraeumen; halt(1); @@ -415,12 +426,12 @@ begin aufraeumen; halt(1); end; - i:=findeWerte(s,inf,@wertes,@Konturen,true); + i:=findeWerte(s,inf,@wertes,@konturen,true); if i<0 then begin aufraeumen; halt(1); end; - if wertes[i].berechneKorrelation(syntaxtest,inf,maxthreads,wertes[j]) then + if wertes[i].berechneKorrelation(syntaxtest,inf,maxThreads,wertes[j]) then continue; aufraeumen; halt(1); @@ -431,7 +442,7 @@ begin end; if istDasBefehl('maximale und minimale Dichten bestimmen',s,bekannteBefehle,true) then begin b:=startetMit('(symmetrisch) ',s); - i:=findeWerte(s,nil,@wertes,@Konturen,false); + i:=findeWerte(s,nil,@wertes,@konturen,false); if i<0 then begin aufraeumen; halt(1); @@ -441,7 +452,7 @@ begin end; if istDasBefehl('maximale und minimale Dichten angleichen',s,bekannteBefehle,true) then begin b:=startetMit('(symmetrisch) ',s); - i:=findeWerte(s,nil,@wertes,@Konturen,false); + i:=findeWerte(s,nil,@wertes,@konturen,false); if i<0 then begin aufraeumen; halt(1); @@ -450,19 +461,19 @@ begin continue; end; if istDasBefehl('lineares Bild',s,bekannteBefehle,true) then begin - i:=findeWerte(s,nil,@wertes,@Konturen,false); + i:=findeWerte(s,nil,@wertes,@konturen,false); if i<0 then begin aufraeumen; halt(1); end; - if not wertes[i].erzeugeLinearesBild(syntaxtest,inf,maxthreads) then begin + if not wertes[i].erzeugeLinearesBild(syntaxtest,inf,maxThreads) then begin aufraeumen; halt(1); end; continue; end; if istDasBefehl('Ascii',s,bekannteBefehle,true) then begin - i:=findeWerte(s,nil,@wertes,@Konturen,false); + i:=findeWerte(s,nil,@wertes,@konturen,false); if i<0 then begin aufraeumen; halt(1); @@ -474,7 +485,7 @@ begin continue; end; if istDasBefehl('Lineout',s,bekannteBefehle,true) then begin - i:=findeWerte(erstesArgument(s),nil,@wertes,@Konturen,false); + i:=findeWerte(erstesArgument(s),nil,@wertes,@konturen,false); if (i<0) or not wertes[i].erzeugeLineout(syntaxtest,s) then begin aufraeumen; halt(1); @@ -482,7 +493,7 @@ begin continue; end; if istDasBefehl('Binning',s,bekannteBefehle,true) then begin - i:=findeWerte(erstesArgument(s),nil,@wertes,@Konturen,false); + i:=findeWerte(erstesArgument(s),nil,@wertes,@konturen,false); if (i<0) or not wertes[i].erzeugeBinning(syntaxtest,s) then begin aufraeumen; halt(1); @@ -491,7 +502,7 @@ begin end; if istDasBefehl('lösche Werte',s,bekannteBefehle,true) then begin while s<>'' do begin - j:=findeWerte(erstesArgument(s),nil,@wertes,@Konturen,false); + j:=findeWerte(erstesArgument(s),nil,@wertes,@konturen,false); if j<0 then begin aufraeumen; halt(1); @@ -499,13 +510,13 @@ begin wertes[j].free; for i:=j+1 to length(wertes)-1 do wertes[i-1]:=wertes[i]; - setlength(wertes,length(wertes)-1); + setLength(wertes,length(wertes)-1); end; continue; end; if istDasBefehl('lösche Kontur',s,bekannteBefehle,true) then begin while s<>'' do begin - j:=findeKontur(erstesArgument(s),nil,@Wertes,@Konturen,false); + j:=findeKontur(erstesArgument(s),nil,@wertes,@konturen,false); if j<0 then begin aufraeumen; halt(1); @@ -513,7 +524,7 @@ begin konturen[j].free; for i:=j+1 to length(konturen)-1 do konturen[i-1]:=konturen[i]; - setlength(konturen,length(konturen)-1); + setLength(konturen,length(konturen)-1); end; continue; end; @@ -523,8 +534,8 @@ begin halt(1); end; if istDasBefehl('Kontur',s,bekannteBefehle,true) then begin - i:=findeKontur(s,inf,@Wertes,@Konturen,true); - if (i>=0) and Konturen[i].Init(syntaxtest,inf,@wertes,maxthreads) then continue; + i:=findeKontur(s,inf,@wertes,@konturen,true); + if (i>=0) and konturen[i].init(syntaxtest,inf,@wertes,maxThreads) then continue; aufraeumen; halt(1); end; @@ -535,7 +546,7 @@ begin aufraeumen; halt(1); until false; - werte_aufraeumen; + werteAufraeumen; end; aufraeumen; if not behalteLogs then cleanupLogs; |