diff options
author | Erich Eckner <git@eckner.net> | 2015-11-16 06:37:30 +0100 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2015-11-16 06:37:30 +0100 |
commit | e99f3fec7e287b879ceeb0f0d95185cf2ab0791e (patch) | |
tree | 2f108f17c53ee6993ae73a91426dcae3ab4efac4 /unit1.pas | |
parent | 18b2f6120d3320d0557b04e9c04ead225e88447b (diff) | |
download | FH-Wetter-e99f3fec7e287b879ceeb0f0d95185cf2ab0791e.tar.xz |
Tagesendstand, pegelunit begonnen
Diffstat (limited to 'unit1.pas')
-rw-r--r-- | unit1.pas | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/unit1.pas b/unit1.pas new file mode 100644 index 0000000..b06b54d --- /dev/null +++ b/unit1.pas @@ -0,0 +1,114 @@ +unit Unit1; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls; + +type + + { TForm1 } + + TForm1 = class(TForm) + TrayIcon1: TTrayIcon; + procedure FormCreate(Sender: TObject); + procedure FormDestroy(Sender: TObject); + private + { private declarations } + public + { public declarations } + end; + +var + Form1: tForm1; + pidDatei: string; + +const + + DateiName = 'letztes_Wetter.txt'; + PegelDateiName = 'letzte_Pegel.txt'; + anzDaten = 7*24*6*4; + + +(* +function separateValue(var S: String): string; +function Zeit2Datetime(Z: TZeit): extended; +function PegelstaendeVergleichen(P1,P2: Pointer): integer; +function PegelzeitVergleichen(P1,P2: TPegelzeit): integer; +function findePegelZeit(PS: TList; PZ: TPegelzeit): extended; +function strToPegelZeit(s: string): TPegelzeit; +function Pegelzeit2Datetime(Z: TPegelzeit): extended; +function letzterMonat(t: TDateTime): TPoint; // x=Monat, y=Jahr +function MyIntToStr(I,Ziff: longint): string; +*) + +implementation + +{$R *.lfm} + +uses process, myStringListUnit, lowLevelUnit, systemUnit; + +{ TForm1 } + +procedure TForm1.FormCreate(Sender: TObject); +var + s,t: string; + f,o: tMyStringList; + fi: textfile; + args: array of string; +begin + pidDatei:=''; + s:=extractfilepath(application.exename)+'wetter.konf'; + t:=''; + if not fileexists(s) then + raise exception.create('Kann Konfigurationsdatei '''+s+''' nicht finden!'); + f:=tMyStringList.create; + f.loadFromFile(s); + f.unfoldMacros; + while f.readln(s) do begin + if startetMit('pidDatei:',s) then begin + pidDatei:=s; + assignFile(fi,pidDatei); + if fileexists(pidDatei) then begin // pidDatei existiert schon + reset(fi); + readln(fi,s); + if strtoint(s)<>GetProcessID then begin // der eingetragene Prozess bin nicht ich + setlength(args,1); + args[0]:='aux'; + runCommand('ps',args,t); + o:=tMyStringList.create; + o.text:=t; + o.grep('^\S+\s+'+s+'\s'); + if o.count>0 then begin // der eingetragene Prozess läuft noch + closeFile(fi); + f.free; + o.free; + raise exception.create('Programm läuft bereits ('+s+')!'); + end; + o.free; + end; + closefile(fi); + end; + rewrite(fi); + writeln(fi,inttostr(GetProcessID)); + closeFile(fi); + continue; + end; + + raise exception.create('Unbekannte Option '''+s+''' in Konfigdatei!'); + end; + f.free; + + form1.caption:=inttostr(GetProcessID); +end; + +procedure TForm1.FormDestroy(Sender: TObject); +begin + if fileExists(pidDatei) then + deleteFile(pidDatei); +end; + +end. + |