summaryrefslogtreecommitdiff
path: root/pegelunit.pas
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2015-11-17 13:31:40 +0100
committerErich Eckner <git@eckner.net>2015-11-17 13:31:40 +0100
commitb80559044ffc627e897bba6df2c15c1b28d732de (patch)
tree65b77f7cf8347c98744405982bb383e8849e527a /pegelunit.pas
parentb861e26f594e1fd8472d513430da1296eed023ba (diff)
downloadFH-Wetter-b80559044ffc627e897bba6df2c15c1b28d732de.tar.xz
soweit lauffähig
ToDo: Taskbaricon
Diffstat (limited to 'pegelunit.pas')
-rw-r--r--pegelunit.pas143
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;