Zeitliche Steuerung von Service Anwendung



  • Hallo zusammen,
    ich beschäfftige mich momentan damit Service Anwendungen zu schreiben.
    Das funktioniert auch so weit.
    Ich möchte nun realisieren, dass der Service zeitgesteuert arbeitet.
    Bisher habe ich mit der TTimer-Komponente gearbeitet.
    Frage: Wenn ich TTimer einsetze, läuft der Service dann permanent weiter?

    Hintergrund ist, dass ich zeitgesteuert eine CSV-Datei auswerten will,
    die aber immer weitergeschrieben wird. Ich wil mir jetzt merken, an welcher Stelle ich beim nächsten Durchlauf weitermachen muss, ohne in eine temporäre Datei zu schreiben.Würde mir bis zum nächsten Durchlauf meine Variable erhalten bleiben?

    Vielleicht fehlt mir doch noch ein bisschen der Hintergrund 😃

    Gruß
    Björn



  • Ob mit oder ohne Timer, der Service läuft die ganze Zeit. Genau wie ein normales Anwendungsprogramm, das einmal gestartet wurde. Nur eben im Hintergrund und (i.d.R.) ohne Ein- oder Ausgabe.



  • Danke Jansen,
    damit hast du mir auf die Sprünge geholfen. 💡
    Dann bleiben ja auch meine Variablen im Speicher
    und ich kann mit meinem dateizeiger arbeiten.
    👍



  • elwood schrieb:

    ...

    Hintergrund ist, dass ich zeitgesteuert eine CSV-Datei auswerten will,
    die aber immer weitergeschrieben wird. Ich wil mir jetzt merken, an welcher Stelle ich beim nächsten Durchlauf weitermachen muss,

    ...

    Vielleicht verstehe ich dein Problem ja nicht ganz, aber normalerweise hast du die Möglichkeit die Dateizeiger explizit zu setzen, z.B. für den Fall, dass du in mitten der Datei was lesen oder schreiben möchtest. Andernfalls es darum geht eine Datei fortzuschreiben, tu das doch (Zeiger auf's Ende). Wozu merken?
    Geeignete Kommentierung schafft auch abundzu den nötigen Durchblick.

    In diesem Sinne,

    wooghie :p



  • Ja wooghie,
    da hast du grundsätzlich recht.
    Aber ich will ja nichts in eine Datei schreiben sondern nur lesen.
    In der Datei stehen Datensätze die von irgendeinem anderen Programm immer weiter geschrieben werden.
    Mein Service soll nun einmal täglich nachschauen ob neue Datensätze in das csv-file geschrieben wurden und wenn ja diese auslesen.
    Damit ich aber nicht immer die ganze Datei durcharbeiten muss, die kann nämlich ziemlich riesig werden, soll der Service wissen, welche Zeile die letzte war, damit er genau da wieder ansetzen kann und nur die Datensätze liest, die neu dazugekommen sind. 😉

    Was meinst du mit geeigneter Kommentierung 😕



  • schreib die Dateigröße und position des letzen Lesevorgangs doch in eine einer anderen konfigurationsdatei oder in die Reg. Dann weisste, schon mal, ob die postion noch gültig ist (Datei kann ja auch verkleinert worden sein, oder nicht ?) und hast die neue leseposition.

    Ansonsten würd ich über eine Datenbank nachdenken.



  • Ja, die Daten aus der Datei werden nach dem Auswerten in einer Datenbank abgelegt. Die Datei wird eigentlich nur größer, wenn sie nicht irgendwann mal
    gelöscht wird, da sie zu groß geworden ist.
    Über eine Konfig Datei habe ich auch schon nachgedacht.
    Weil wenn ich den Dateizeiger nur in einer Variablen vorhalte und der Service schmiert mal ab, dann hab ich auch nichts gewonnen.
    Wie schreib ich sowas denn in die Reg?


  • Mod

    Hallo

    schreib diese Daten (die nur dein Programm betreffen)
    bitte nicht in die Reg - besser ist da eine Ini-Datei
    (jetzt geht wieder der grosse Krieg Reg <-> Ini los)
    Aber fuer Programmeinstellungen, die nur mein Programm betreffen
    sollte man eine Ini verwenden.
    Fuer Einstellungen die fuer Win wichtig sind (im Zusammenhanh mit meinem Programm)
    ist die Reg zustaendig

    Wenn man alles in die Reg packt sollte man schon wissen -> grosse Reg = Bremse

    MfG
    Klaus



  • Ja ich denke ich werde ein INI-File benutzen, da ich eh eins benötige um den Service zu konfiguruieren.


Anmelden zum Antworten