summaryrefslogtreecommitdiff
path: root/pegelunit.pas
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2015-11-17 16:24:24 +0100
committerErich Eckner <git@eckner.net>2015-11-17 16:24:24 +0100
commit9b75646e386074fae0bc6002a0d32eaaa7fb0d95 (patch)
tree9b75f161082dcad4f24cf4a30fa9a09a0d54ed4a /pegelunit.pas
parente76fc83959686d0a77343dd29371a232d1973a1e (diff)
downloadFH-Wetter-9b75646e386074fae0bc6002a0d32eaaa7fb0d95.tar.xz
Dateien können jetzt komprimiert abgespeichert werden
Diffstat (limited to 'pegelunit.pas')
-rw-r--r--pegelunit.pas47
1 files changed, 22 insertions, 25 deletions
diff --git a/pegelunit.pas b/pegelunit.pas
index f5951b6..e63a799 100644
--- a/pegelunit.pas
+++ b/pegelunit.pas
@@ -83,7 +83,7 @@ type
implementation
-uses systemunit, math, unit1;
+uses math, unit1, myStringListUnit;
const
pegelStationsNamen: array[tPegelstation] of array[0..1] of string =
@@ -434,7 +434,7 @@ end;
procedure tPegelStaende.laden(von: string);
var
- f: textfile;
+ f: tMyStringList;
s: string;
ps: tPegelstation;
psda,gefunden: boolean;
@@ -445,12 +445,14 @@ begin
raise exception.create('Pegeldatei '''+von+''' existiert nicht!');
exit;
end;
- assignfile(f,von);
- reset(f);
+ f:=tMyStringList.create;
+ if rightStr(von,3)='.gz' then
+ f.loadFromGz(von)
+ else
+ f.loadFromFile(von);
psda:=false;
ps:=low(TPegelstation);
- while not eof(f) do begin
- readln(f,s);
+ while f.readln(s) do begin
if pos('Station: ',s)=1 then begin
delete(s,1,pos(' ',s));
ps:=low(TPegelstation);
@@ -462,7 +464,7 @@ begin
inc(ps);
end;
if not gefunden then begin
- closefile(f);
+ f.free;
writeln('Pegelstation '''+s+''' nicht gefunden '''+Pegelstationsnamen[psSaalfeld,0]+'''!');
raise exception.create('Pegelstation '''+s+''' nicht gefunden '''+Pegelstationsnamen[psSaalfeld,0]+'''!');
end;
@@ -470,39 +472,34 @@ begin
continue;
end;
if not psda then begin
+ f.free;
writeln('Es wurde noch keine Pegelstation erwähnt!');
raise exception.create('Es wurde noch keine Pegelstation erwähnt!');
end;
werte[ps].add(s);
end;
- closefile(f);
+ f.free;
if not assigned(put) then
put:=tPegelUpdateThread.create(self);
end;
procedure tPegelStaende.speichern(nach: string);
var
- dateischonda: boolean;
- f: textfile;
- ps: tPegelStation;
- i: longint;
+ f: tMyStringList;
+ ps: tPegelStation;
+ i: longint;
begin
- dateischonda:=fileexists(nach);
- if dateischonda then
- assignfile(f,mkTemp(nach+'.XXXXXX'))
- else
- assignfile(f,nach);
- rewrite(f);
+ f:=tMyStringList.create;
for ps:=low(tPegelStation) to high(tPegelStation) do begin
- writeln(f,'Station: '+Pegelstationsnamen[ps,0]);
+ f.add('Station: '+Pegelstationsnamen[ps,0]);
for i:=0 to werte[ps].Count-1 do
- writeln(f,werte[ps][i].schreibe);
- end;
- closefile(f);
- if dateischonda then begin
- deletefile(nach);
- rename(f,nach);
+ f.add(werte[ps][i].schreibe);
end;
+ if rightStr(nach,3)='.gz' then
+ f.saveToGz(nach)
+ else
+ f.saveToFile(nach);
+ f.free;
end;
procedure tPegelStaende.achsenZeichnen(zuZeichnen: tPegelStationsSet; startZeit,stopZeit: extended);