summaryrefslogtreecommitdiff
path: root/unit1.pas
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2015-11-16 06:37:30 +0100
committerErich Eckner <git@eckner.net>2015-11-16 06:37:30 +0100
commite99f3fec7e287b879ceeb0f0d95185cf2ab0791e (patch)
tree2f108f17c53ee6993ae73a91426dcae3ab4efac4 /unit1.pas
parent18b2f6120d3320d0557b04e9c04ead225e88447b (diff)
downloadFH-Wetter-e99f3fec7e287b879ceeb0f0d95185cf2ab0791e.tar.xz
Tagesendstand, pegelunit begonnen
Diffstat (limited to 'unit1.pas')
-rw-r--r--unit1.pas114
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.
+