ElapsedMilliseconds()

Anfängerfragen zum Programmieren mit PureBasic.
Pneumo
Beiträge: 8
Registriert: 29.03.2010 16:10

ElapsedMilliseconds()

Beitrag von Pneumo »

Hi ihr alle :)
wie der Titel schon sagt geht es um den befehl "ElapsedMilliseconds()"
gefunden hab ich den befehl nur versteh ich noch nicht so ganz wie er funktioniert :oops:

es soll einfach nur von 120 im sekundentackt herabgezählt werden

gibt es sonst noch ne andere möglichkeit wie z.B. ne for/next schleife das man dort eine verzögerung einbauen kann??

freue mich über antworten ^^


__________________________________
Über Suche hab ich schon 2mal mit verschiedenen begriffen geschaut aber nichts hilfreiches gefunden
vllt bin ich aber auch zu blöd dafür :)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: ElapsedMilliseconds()

Beitrag von ts-soft »

Wenn Du eine GUI hast, solltest Du einen Timer nutzen, ansonsten:

Code: Alles auswählen

Procedure CountDown()
  Protected time, i

  Debug 120
  For i = 1 To 120
    time = ElapsedMilliseconds() + 1000
    While ElapsedMilliseconds() < time
      Delay(10) ; CPU nicht braten, wahr teuer ;)
    Wend
    Debug 120 - i
  Next
EndProcedure

CountDown()
gruß

Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: ElapsedMilliseconds()

Beitrag von Kaeru Gaman »

ElapsedMilliseconds() gibt dir die Anzahl Millisekunden seit dem Start des Rechners an.

also, wenn du einen bestimmten Zeitraum messen willst,
musst du am Anfang notieren, wie hoch der Timer ist,
und dann eben checken, ob ein bestimmter Zeitraum vergangen ist.

Code: Alles auswählen

Timer = ElapsedMilliseconds() + 1000 ; eine Sekunde nach aktueller Zeit

For n=120 To 0 Step -1
  Debug "Sekunden: " + Str(n)
  While ElapsedMilliseconds() < Timer
    Delay(10)
  Wend
  Timer + 1000 ; eine Sekunde dazu
Next
wenn du allerdings ein Fenster hast, ist es besser, den Befehl AddWindowTimer zu verwenden.


PS:
*LOL* :lol:
außenrum ne For und innen ne While, die Beispiele sind sich ja verdammt ähnlich!
der gewichtige Unterschied ist, dass ich nicht jedes mal neu den Timer hole, sondern einfach 1000 dazuaddiere.
das hilft, die Abweichungen geringer zu halten. ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: ElapsedMilliseconds()

Beitrag von ts-soft »

Kaeru Gaman hat geschrieben:PS:
*LOL* :lol:
außenrum ne For und innen ne While, die Beispiele sind sich ja verdammt ähnlich!
Ich hab vorher gepostet :mrgreen:
Hab also nicht abgeguckt :lol:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

Re: ElapsedMilliseconds()

Beitrag von WPö »

Zunächst einmal: Willkommen, Pneumo!
Pneumo hat geschrieben:es soll einfach nur von 120 im sekundentackt herabgezählt werden
Da hier nicht von einem Fenster die Rede ist, kann man auch Delay(1000) nehmen und 120 mal in einer Schleife ausführen. Der Zeitfehler ist zu vernachlässigen.
Pneumo hat geschrieben:gibt es sonst noch ne andere möglichkeit wie z.B. ne for/next schleife das man dort eine verzögerung einbauen kann??
Ja, aber Pfoten weg. Zu Zeiten eines C64, wo alle Rechner mit derselben Taktung arbeiteten, war das schon dreckiger Progrmmierstil, wenns auch funktionierte. Woher aber willst Du die Arbeitsfrequenz, Cache/Burst, RAM-Zugriffsgeschwindigkeiten usw. des Zielrechners kennen?
Pneumo hat geschrieben:Über Suche hab ich schon 2mal mit verschiedenen begriffen geschaut aber nichts hilfreiches gefunden
vllt bin ich aber auch zu blöd dafür :)
Signatur bitte mit Rechnerausstattung, Betriebssystemversion und verwendeten Programmen füllen. Danke!

Gruß - WPö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Antworten