diff options
Diffstat (limited to 'pegelunit.pas')
-rw-r--r-- | pegelunit.pas | 47 |
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); |