diff options
author | Erich Eckner <git@eckner.net> | 2015-11-17 13:31:40 +0100 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2015-11-17 13:31:40 +0100 |
commit | b80559044ffc627e897bba6df2c15c1b28d732de (patch) | |
tree | 65b77f7cf8347c98744405982bb383e8849e527a /pegelunit.pas | |
parent | b861e26f594e1fd8472d513430da1296eed023ba (diff) | |
download | FH-Wetter-b80559044ffc627e897bba6df2c15c1b28d732de.tar.xz |
soweit lauffähig
ToDo: Taskbaricon
Diffstat (limited to 'pegelunit.pas')
-rw-r--r-- | pegelunit.pas | 143 |
1 files changed, 71 insertions, 72 deletions
diff --git a/pegelunit.pas b/pegelunit.pas index 3fe1529..033ea3d 100644 --- a/pegelunit.pas +++ b/pegelunit.pas @@ -106,7 +106,6 @@ const (130,170,210,230),(200,230,260,290),(130,150,170,190),(0,0,0,0)); pegelFarben: array[tPegelstation] of tColor = ($000000,$000000,$000000,$FF0000,$7F0000,$000000,$000000,$000000,$000000,$000000,$000000,$000000); - bufLengMin = 1024*1024; // tPegelStand ***************************************************************** @@ -362,6 +361,76 @@ begin inherited destroy; end; +procedure tPegelStaende.einlesen(was: string); +var + t: string; + PS: TPegelstation; + psda,wsda,gefunden: boolean; + i: longint; +begin + while pos(#13,was)>0 do + delete(was,pos(#13,was),1); + psda:=false; + wsda:=false; + pS:=low(tPegelStation); + while was<>'' do begin + t:=myUtf8Encode(erstesArgument(was,#10)); + if length(t)=0 then continue; + if startetMit('Pegelname:',t) then begin + pS:=low(tPegelStation); + gefunden:=false; + while pS<=high(tPegelStation) do begin + for i:=0 to length(pegelStationsNamen[psBlankenstein])-1 do + gefunden:=gefunden or ((pegelStationsNamen[pS,i]<>'') and (pegelStationsNamen[pS,i]=t)); + if gefunden then break; + inc(pS); + end; + if not gefunden then begin + writeln('Unbekannter Pegelname: '''+t+'''!'); + for i:=1 to length(t) do + write(ord(t[i]),' '); + writeln; + for i:=1 to length(pegelStationsNamen[psSaalfeld,0]) do + write(ord(pegelStationsNamen[psSaalfeld,0][i]),' '); + writeln; + raise exception.create('Unbekannter Pegelname: '''+t+'''!'); + end; + psda:=true; + continue; + end; + if t='Durchfluss [m3/s]' then begin + wsda:=false; + continue; + end; + if t='Wasserstand [cm]' then begin + wsda:=true; + continue; + end; + if not (wsda and psda) then continue; + if pos('Fluss: ',t)=1 then continue; + if pos('Flusseinzugsgebiet: ',t)=1 then continue; + if startetMit('Stationsnummer: ',t) then begin + {$WARNINGS-} + if decimalSeparator<>'.' then + while pos('.',t)>0 do + t[pos('.',t)]:=decimalSeparator; + {$WARNINGS+} + if round(10*strtofloat(t))<>round(10*pegelStationsNummern[pS]) then begin + writeln( + 'erwartete Pegelstationsnummer ('+floattostr(pegelStationsNummern[pS])+ + ') für '+pegelStationsNamen[pS,0]+' ist verschieden von der angegebenen Nummer ('+t+')!'); + raise exception.create( + 'erwartete Pegelstationsnummer ('+floattostr(pegelStationsNummern[pS])+ + ') für '+pegelStationsNamen[pS,0]+' ist verschieden von der angegebenen Nummer ('+t+')!'); + end; + continue; + end; + if pos('Hinweise: ',t)=1 then continue; + if pos('keine Werte',t)>0 then continue; + werte[pS].add(t); + end; +end; + procedure tPegelStaende.laden(von: string); var f: textfile; @@ -426,7 +495,7 @@ begin for ps:=low(tPegelStation) to high(tPegelStation) do begin writeln(f,'Station: '+Pegelstationsnamen[ps,0]); for i:=0 to werte[ps].Count-1 do - writeln(f,tPegelStand(werte[ps][i]).schreibe); + writeln(f,werte[ps][i].schreibe); end; closefile(f); if dateischonda then begin @@ -474,76 +543,6 @@ begin end; end; -procedure tPegelStaende.einlesen(was: string); -var - t: string; - PS: TPegelstation; - psda,wsda,gefunden: boolean; - i: longint; -begin - while pos(#13,was)>0 do - delete(was,pos(#13,was),1); - psda:=false; - wsda:=false; - pS:=low(tPegelStation); - while was<>'' do begin - t:=myUtf8Encode(erstesArgument(was,#10)); - if length(t)=0 then continue; - if startetMit('Pegelname:',t) then begin - pS:=low(tPegelStation); - gefunden:=false; - while pS<=high(tPegelStation) do begin - for i:=0 to length(pegelStationsNamen[psBlankenstein])-1 do - gefunden:=gefunden or ((pegelStationsNamen[pS,i]<>'') and (pegelStationsNamen[pS,i]=t)); - if gefunden then break; - inc(pS); - end; - if not gefunden then begin - writeln('Unbekannter Pegelname: '''+t+'''!'); - for i:=1 to length(t) do - write(ord(t[i]),' '); - writeln; - for i:=1 to length(pegelStationsNamen[psSaalfeld,0]) do - write(ord(pegelStationsNamen[psSaalfeld,0][i]),' '); - writeln; - raise exception.create('Unbekannter Pegelname: '''+t+'''!'); - end; - psda:=true; - continue; - end; - if t='Durchfluss [m3/s]' then begin - wsda:=false; - continue; - end; - if t='Wasserstand [cm]' then begin - wsda:=true; - continue; - end; - if not (wsda and psda) then continue; - if pos('Fluss: ',t)=1 then continue; - if pos('Flusseinzugsgebiet: ',t)=1 then continue; - if startetMit('Stationsnummer: ',t) then begin - {$WARNINGS-} - if decimalSeparator<>'.' then - while pos('.',t)>0 do - t[pos('.',t)]:=decimalSeparator; - {$WARNINGS+} - if round(10*strtofloat(t))<>round(10*pegelStationsNummern[pS]) then begin - writeln( - 'erwartete Pegelstationsnummer ('+floattostr(pegelStationsNummern[pS])+ - ') für '+pegelStationsNamen[pS,0]+' ist verschieden von der angegebenen Nummer ('+t+')!'); - raise exception.create( - 'erwartete Pegelstationsnummer ('+floattostr(pegelStationsNummern[pS])+ - ') für '+pegelStationsNamen[pS,0]+' ist verschieden von der angegebenen Nummer ('+t+')!'); - end; - continue; - end; - if pos('Hinweise: ',t)=1 then continue; - if pos('keine Werte',t)>0 then continue; - werte[pS].add(t); - end; -end; - procedure tPegelStaende.putBeenden; begin put.beenden:=true; |