Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Funktion jede Stunde ausführen...?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
spreeg



Anmeldungsdatum: 12.01.2006
Beiträge: 4

BeitragVerfasst am: 14.01.2006, 13:58    Titel: Funktion jede Stunde ausführen...? Antworten mit Zitat

Hi @ all
So, lezte Frage, bevor ich mit meinen Nooby-Fragen das ganze Forum voll spame grinsen

Diesmal geht es darum, dass ich eine Funktion geschrieben habe, die jede Stunde ausgeführt werden soll...

Danke nochmals
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 14.01.2006, 14:14    Titel: Antworten mit Zitat

Kurz und knapp:
Code:
Declare Sub SleepAPI Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Integer)

do
    DieFunktion
    SleepAPI 3600000
loop

SleepAPI 1 = 1ms
1000 ms = 1s
60s = 1 min
60 min = 1h

1000 * 60 * 60 = 3 600 000ms

Man könnte eigentlich auch sleep verwenden, das wertet aber auch Tastendrücke aus (ein Tastendruck bricht Sleep ab), im Gegensatz zur API Variante.
Wobei dieses spezielle Verhalten von sleep auch praktisch sein kann:
Code:
do
    DieFunktion
    Sleep 3600000
     if inkey$<>"" Then END
loop

Dieser Code lässt sich im Gegensatz zum anderen Kontrolliert beenden.

Warnung:
Die Genauigkeit lässt etwas zu Wünschen übrig.
(Am besten mal mit kurzere Zeit Austesten ob die Präzision reicht.)
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
spreeg



Anmeldungsdatum: 12.01.2006
Beiträge: 4

BeitragVerfasst am: 14.01.2006, 14:39    Titel: Antworten mit Zitat

aso man macht das auch mit sleep^^
*wieder schlauer sein*

Vielen Dank
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kai Bareis



Anmeldungsdatum: 10.09.2004
Beiträge: 545
Wohnort: Baden Würtemberg

BeitragVerfasst am: 14.01.2006, 15:20    Titel: Antworten mit Zitat

Ich denke der Timer wäre eine bessere alternative
da man ihr auch unterbrechen kann mit einer kleinen Erweiterung.
Code:
Do
print "hallo"
timerstart = timer

while timer < timerstart + 1 'Hier Zeit in Sekunden einstellen
   sleep 1 'Prozessor entlasten
wend

? timer - timerstart
Loop

_________________
MfG Kai Bareis
Es ist noch kein Meister vom Himmel gefallen! Warum einfach wens auch umständlich geht!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 14.01.2006, 22:50    Titel: Antworten mit Zitat

Man kann auch das FB internet Sleep verwenden. Ab Version 0.15 gibts einen 2. Parameter.
Code:

Sleep 10000,1


Damit wird 10 sekunden gewartet, auch wenn man eine taste drückt.

Michael
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 15.01.2006, 00:03    Titel: Antworten mit Zitat

internet sleep durchgeknallt

Wie aber bereits gesagt is der interne sleep ungenau, timer ist besser.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 15.01.2006, 16:57    Titel: Antworten mit Zitat

MisterD hat Folgendes geschrieben:
Wie aber bereits gesagt is der interne sleep ungenau, timer ist besser.
Wird dann wohl aber sicher in der nächsten Version nimmer so sein, meinst ned? lächeln
_________________
» Yodl.de: So sucht man gestern. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 15.01.2006, 19:03    Titel: Antworten mit Zitat

wieso sollte ich das meinen?
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 16.01.2006, 14:55    Titel: Antworten mit Zitat

Weil FB von Version zu Version besser wird?
_________________
» Yodl.de: So sucht man gestern. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
max06



Anmeldungsdatum: 05.12.2004
Beiträge: 390
Wohnort: Augsburg

BeitragVerfasst am: 16.01.2006, 16:18    Titel: Antworten mit Zitat

Wird das nun in der nächsten Version genauer sein?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 16.01.2006, 18:09    Titel: Antworten mit Zitat

das siehst du wenn die raus ist zwinkern
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OdinX



Anmeldungsdatum: 29.07.2005
Beiträge: 253
Wohnort: SG Schweiz

BeitragVerfasst am: 18.01.2006, 12:04    Titel: Antworten mit Zitat

gibt es in fb "time$" nicht mehr?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 18.01.2006, 12:19    Titel: Antworten mit Zitat

doch, das ginge auch, is aber umständlicher.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 18.01.2006, 15:12    Titel: Antworten mit Zitat

max61989 hat Folgendes geschrieben:
Wird das nun in der nächsten Version genauer sein?

klares nein!
Die Sleep - Anweisung war nie als Präzisionszeit gedacht, war/wird immer je nach Platform (DOS, Windows, Linux) andere zusätzliche Aufgaben oder Zeitreferenzen haben.
Selbst in verschiedenen Windowsversionen sind die Abweichungen unterschiedlich. Ob man aber immer auf Hunderstelsekunde genau sein muß?
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
max06



Anmeldungsdatum: 05.12.2004
Beiträge: 390
Wohnort: Augsburg

BeitragVerfasst am: 21.01.2006, 01:03    Titel: Nicht so genau... Antworten mit Zitat

Nun ja... wenn man aber z.B. ein Programm hat, das alle 24 Stunden was bestimmtes tun muss (und das genau alle 24 Stunden!) dann könnte

Code:

sleep 86400000


etwas ungenau werden...

Könnte mir mal jemand eine genaue, unabhängige Möglichkeit der Zeitmessung nennen?


Ich glaube, wir lassen das Thema jetzt... immer diese Haarspaltereien...


Greets
Florian[/code]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 21.01.2006, 01:18    Titel: Antworten mit Zitat

Zur Messung ist wohl TIMER das beste, da er relativ einfach zu handlen ist, und - je nach Prozessor - Auflösungen zw. 1/18sek und 1msek bietet (oder wars noch genauer...?)
Bei so großen Zeiten wie hier dürfte aber DATE und TIME besser geeignet sein; die Auflösung ist hier natürlich nur 1sek bzw. 1 Tag zwinkern
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz