AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TService Execute

Ein Thema von value is NULL · begonnen am 7. Dez 2010 · letzter Beitrag vom 7. Dez 2010
Antwort Antwort
Seite 1 von 2  1 2      
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#1

TService Execute

  Alt 7. Dez 2010, 11:59
Hi Delphianer..

beschäftige mich seit neuestem mit Services und verstehe so ziemlich das prinzip habe jedoch jetzt folgendes problem:

in meiner execute procedure frage ich alle 2 minuten einen ordner ab, ob sich dateien in diesem befinden.

ich habe das jetzt mal so versucht:

Delphi-Quellcode:
begin
  cache := 0;
  while not terminated do begin
        sleep(4000);
        if cache = 1 then begin
              GetLocaleFormatSettings(GetUserDefaultLCID,mysettings);
              mysettings.ShortTimeFormat := 'hh:mm:ss';
              zeit := TimeToStr(Now,mysettings);
              value := StrtoTime(zeit) + StrToTime('00:01:00');
              cache := 0;
        end;
        while CompareTime(StrToTime(zeit), value) = 0 do begin
                cache := 1;
                sleep(4000);
                logfilest.add(1, 'Cheking Queue...');
                files := Countfilesinfolder('C:\queue', '*.*');
                if files = 0 then begin
                    logfilest.add(1, 'Nothing to do');
                    end
                else
                    logfilest.add(1, 'Something found');
                end;
        end;
  end;
jedoch beendet sich mein Service und schreibt folgende Fehlermeldung in die ereignisanzeige....

"Service fehlgeschlagen bei execute: " ist keine gültige Uhrzeit"
hä?

bzw. hat jemand eine idee wie ich das schöner lösen könnte?!

Danke im Voraus!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: TService Execute

  Alt 7. Dez 2010, 12:06
Wird zeit denn vorbelegt? Ansonsten ist die Variable wohl leer und kann somit nicht per StrToTime umgewandelt werden. Wobei ich mich eh frage, wozu das ganze String-Gehampel gut sein soll.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#3

AW: TService Execute

  Alt 7. Dez 2010, 12:11
Die alles entscheidende Frage:
Warum nutzt du überhaupt Strings?

- aktuelle Zeit (TDateTime) in einen String
- diesen String dann wieder in einen TDateTime
- die Minute von einem Sring nach TDateTime
- und dann zusammenrechnen

Warum bleibst du also nicht bei TDateTime?

1 Minute = 6.94444 oder 1/24/60 oder 1/MinsPerDay


PS: Warum Pullen (ständig alles abfragen), wärend man sich auch über die Änderungen direkt informieren lassen kann?
MSDN-Library durchsuchenReadDirectoryChangesW / Hier im Forum suchenReadDirectoryChangesW
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 7. Dez 2010 um 12:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

AW: TService Execute

  Alt 7. Dez 2010, 12:12
Oder mit DateUtils erhöhen, dann muss man nicht einmal selber rechnen (wobei das ja auch keine unlösbare Aufgabe wäre).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: TService Execute

  Alt 7. Dez 2010, 12:19
Und warum pollst du da ständig rum?

Windows bietet dir die Möglichkeit Ordner zu überwachen ...
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#6

AW: TService Execute

  Alt 7. Dez 2010, 12:21
naja ich habe eine console app die mit 2 parametern diverse einträge in eine datenbank übergibt und dazugehörige files auf einen networkshare schiebt....

jetzt muss ich dieses "modul" Service technisch realisieren.
und deswegen mach ich mir eine art queue welche ich abfrage und dann abarbeite...
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: TService Execute

  Alt 7. Dez 2010, 12:25
aber deswegen kannst du ja trotzdem (oder gerade deshalb) die Ordner-Überwachung benutzen

Der Service wird dann nur aktiv, wenn da was ist ... ansonsten schläft der brav vor sich hin und verbraucht (fast) keine Ressourcen.

Hier im Forum suchenOrdner Überwachung
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#8

AW: TService Execute

  Alt 7. Dez 2010, 12:27
also wenn ich ganz ehrlich bin wußte ich nicht das es das gibt ....
wie gesagt... neuland ... und noch nie benötigt
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: TService Execute

  Alt 7. Dez 2010, 12:27
also wenn ich ganz ehrlich bin wußte ich nicht das es das gibt ....
wie gesagt... neuland ... und noch nie benötigt
Dafür sind wir ja da
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#10

AW: TService Execute

  Alt 7. Dez 2010, 13:02
das is lieb
aber ich versteh das irgendwie nicht...
es gibt da so ein tool welches, wenn sich etwas in einem ordner ändert, ein anders programm aufruft...

aber wie hilft mir sowas?!

danke im voraus!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz