[UPDATE] @Karl-Heinz - Check_Last_PurgeDate

15/11/2008 - 10:20 von Hermann Hippen | Report spam
Moin Moin :-),

Betrifft: http://kh-rademacher.de/4d/Check_La...clude.html

Ich hab das Script ein klein wenig modifiziert - Es bewirkt das Gleiche.

8<--[ Code ]-->8
Procedure Check_Last_PurgeDate;
Var PDat : TStringList;
LastPurgDateFile : String;
Begin
// Dateiname zum Speichern, Pfad selbst anpassen!
// !!Diese Datei wird automatisch angelegt!!
LastPurgDateFile:= 'C:\Programme\40tude Dialog\lastpurge.tmp';
PDat := TStringList.Create;
With PDat do
Begin
If FileExists(LastPurgDateFile) Then LoadFromFile(LastPurgDateFile) Else Add('-');
If DateToStr(Date) <> Strings[0] Then
Begin
Delete(0);
Add(DateToStr(Date));
SaveToFile(LastPurgDateFile);
ADo('PurgeSubscribedGroups');
End;
End;
PDat.Free.
End;
8<>8

Die Wartezeiten sind unnötig. DataBaseReminder muss als Erstes aufgerufen
werden. Siehe meine Anordnung unten:

| program OnStartup;
| uses Forms, Extctrls, TextFile;
| {$I Basis_Modul_Include}

| {$I DBReminder_include}
| {$I Check_Last_PurgeDate}


| procedure OnStartup;
| begin
| lockdisplay;
| try
| ADo('CollapseAllThreads');
| finally
| unlockdisplay;
| end; // try - finally

| DatabaseReminder;


| ADo('GetNewHeadersInSubscribedGroups');
| ADo('GetNewEmailsForCurrentIdentity');

| Check_Last_PurgeDate;


| // HamNew&Mail
| timer1.interval:`000*5;
| timer1.enabled:=true;
| end;
| begin
| End.

Hab es mit dem Script und der obigen Anordnung getestet:
Haltezeit einer Testgruppe, in alle vier Eingabezeilen auf 'Bei jedem
Aufràumen' gesetzt und Dialog neu gestartet.
Datei wurde angelegt und die Testgruppe war gelöscht - kein Artikel mehr
vorhanden.
Jetzt alle Artikel der Gruppe neu geholt und Dialog wieder neu gestartet.
Alle Artikel waren noch da, da ja die Datei mit dem Datumseintrag
exestierte.

Funktioniert also prima so :-) Wenn DataBaseReminder vor
Check_Last_PurgeDate steht wird erst das Komprimieren durchgeführt und erst
dann im Script weitergegangen. So laufen beide problemlos miteinander, ohne
Wartezeiten einbauen zu müssen.

Cu,
Hermann Hippen.
ž' š°º€ø?žžžžž?ø€º°š 'ž
ø€º° '<http://4ds.siteboard.eu>' °º€ø
'ž '40tude-Dialog Scriptwerkstatt' ž'
ø€º°' ž ž ø€º°ššššššš°º€øšž ž '°º€ø
 

Lesen sie die antworten

#1 Karl-Heinz Rademacher
15/11/2008 - 13:10 | Warnen spam
Hallo Hermann,

Hermann Hippen schrieb:
Moin Moin :-),

Betrifft: http://kh-rademacher.de/4d/Check_La...clude.html

Ich hab das Script ein klein wenig modifiziert - Es bewirkt das Gleiche.



Auweia, da hast Du mir aber für den heutigen Samstag jede Menge Arbeit
zukommen lassen. :-)

Unabhàngig davon das ich wohl die Beschreibung auf der Seite anpassen
muß, wird es, so wie ich es auf den ersten Blick so sehe, auch notwendig
werden diese Seite in Gànze neu zu strukturieren.

Denn Wenn Du mal auf der Seite unter 'Inhalt dieser Seite' im Kàstchen
auf 'Das Skript als *solo* Installation im OnStartup ' klickst, ist dort
noch ein einzelnes Skript eingestellt, daß /so/ nun auch nicht mehr
notwendig ist. Ich würde es dann von der Seite nehmen.

Und auf dieser Seite
http://www.kaheira.homepage.t-onlin...ezial.html
müßten dann, hinsichtlich der Ausführung auch einige Zeilen, wie Du
es weiter unten angedeutet hattest, um sortiert, anders angeordnet
werden...-denke ich mal.

8<--[ Code ]-->8
Procedure Check_Last_PurgeDate;
Var PDat : TStringList;
LastPurgDateFile : String;
Begin
// Dateiname zum Speichern, Pfad selbst anpassen!
// !!Diese Datei wird automatisch angelegt!!
LastPurgDateFile:= 'C:\Programme\40tude Dialog\lastpurge.tmp';
PDat := TStringList.Create;
With PDat do
Begin
If FileExists(LastPurgDateFile) Then LoadFromFile(LastPurgDateFile) Else Add('-');
If DateToStr(Date) <> Strings[0] Then
Begin
Delete(0);
Add(DateToStr(Date));
SaveToFile(LastPurgDateFile);
ADo('PurgeSubscribedGroups');
End;
End;
PDat.Free.
End;
8<>8



Mein Gott da hat dein Rotstift aber wieder ganze Arbeit geleistet!

Die Wartezeiten sind unnötig. DataBaseReminder muss als Erstes aufgerufen
werden. Siehe meine Anordnung unten:



Hmm, hier /"klemmt"/ es noch bei mir, den der Reminder (das Skript) wird
ja (einstellbar) nur einmal innerhalb der 7 Tage eigenstàndig aktiv,
wobei Check_Last_PurgeDate tàglich beim ersten Start von 4D aktiv wird.

Oder wie habe ich das zu betrachten?

Man kann natürlich auch via Datei | Datenbank komprimieren... und oder
Aktualisierung aller Datenbank-Dateien... von Hand den Reminder
aktivieren, aber zu dem Zeitpungt hat ja Check_Last_PurgeDate seinen Job
auch schon ausgeführt.*(?)*

| program OnStartup;
| uses Forms, Extctrls, TextFile;
| {$I Basis_Modul_Include}
| {$I DBReminder_include}
| {$I Check_Last_PurgeDate}


| procedure OnStartup;
| begin


[..]

Hab es mit dem Script und der obigen Anordnung getestet:
Haltezeit einer Testgruppe, in alle vier Eingabezeilen auf 'Bei jedem
Aufràumen' gesetzt und Dialog neu gestartet.
Datei wurde angelegt und die Testgruppe war gelöscht - kein Artikel mehr
vorhanden.
Jetzt alle Artikel der Gruppe neu geholt und Dialog wieder neu gestartet.
Alle Artikel waren noch da, da ja die Datei mit dem Datumseintrag
exestierte.

Funktioniert also prima so :-) Wenn DataBaseReminder vor
Check_Last_PurgeDate steht wird erst das Komprimieren durchgeführt und erst
dann im Script weitergegangen. So laufen beide problemlos miteinander, ohne
Wartezeiten einbauen zu müssen.



Hmm na dann hat sich wohl mein Gedankengang wie oben beschrieben
erübrigt! *(?)*


Gruß,
Karl-Heinz
,--[ Die 40tude Dialog - Seiten! ]
Š http://kh-rademacher.de/4d
Š http://kh-rademacher.de/face
`-

Ähnliche fragen