Register
Zeitfunktionen
sleep n acon
n Millisekunden untätig verharren, bevor weitergemacht wird.
Für 3 Sekunden muß man also schreiben: sleep 3000
Wichtig: Der Rechner wird hierdurch nicht lahmgelegt, d.h. man kann in anderen Fenstern (außerhalb a99) weiterarbeiten.
Nutzbar z.B., wenn man eine Folge von Hilfeseiten abrollen lassen will. Das kann durch eingestreute yesno -Befehle noch flexibilisiert werden:
help name1\sleep 4000\yesno Weiter?\if no end\
help name2\sleep 4000...
Von der Sache her etwas Anderes ist der folgende Befehl. Damit kann man periodische Aktionen veranlassen.
slice n=mFLEX
Zeitüberwachung: Eine Zeitscheibe von n Millisekunden wird als Timer gesetzt.
Es hängt vom Modus m ab, was dann passiert:
m=i : "immer wieder" - Alle n Millisekunden wird FLEX ausgeführt.
m=1 : "1-mal" - Nach n Millisekunden wird FLEX ausgeführt, aber nur dieses eine mal
m=0 : der Timer (der irgenwann vorher gesetzt wurde) wird gelöscht, d.h. deaktiviert.
In diesem Fall kommt es auf die Zahl n nicht an, man kann also schreiben slice 0=0.
FLEX muß mit "x " oder "X " beginnen, wie sonst auch. Wenn "x ", dann müssen die Befehle direkt folgen, getrennt durch \\ .
Steht hinter slice nichts, wird der Inhalt der iV genommen.
Es kann nur einen Timer geben! Jeder erneute Befehl ersetzt den ersten.
Beispiel 1: LOG-Datei überwachen
Die Datei logcheck.flx zeigt, wie es geht: Es wird geprüft, ob sich (seit der letzten Ausführung) die Größe der LOG-Datei verändert hat. Wenn ja, wird eine Meldung angezeigt.
Start: nicht direkt, sondern mit dem Befehl slice, z.B. so:
slice 20000=iX logcheck
Dann findet die Prüfung alle 20 Sekunden statt.
Beispiel 2: Timeout-Funktion
Die Datei timeout.flx zeigt, wie man eine Timeout-Funktion installieren kann (automatische Beendigung des Programms nach einer einstellbaren Zeit)
Start: nicht direkt, sondern mit dem Befehl slice, am besten eingebaut in _start.flx
slice 360000=iX timeout
Dann wird alle 6 Minuten (= 360 Sekunden) geprüft, ob der Nutzer inzwischen etwas getan hat. Er hat dann die Möglichkeit, mit Esc-Taste den Rauswurf noch zu verhindern.