Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Berechnung eines Timers? (https://www.delphipraxis.net/112170-berechnung-eines-timers.html)

orion3000 16. Apr 2008 09:02


Berechnung eines Timers?
 
Hallo und guten Morgen Zusammen,ich habe da ein Problem:

ich möchte 200 Mb,verschiedener Daten, auf meine Festplatte schreiben.

Nun meine Frage:

Wie kann ich feststellen in welcher Zeit der Vorgang abgeschlossen sein wird?

ich Denke mit einem normalen Dreisatz wird dies funktionieren.

Aber wie geht das in Delphi?

1Mb in Schreiben in, sagen wir, 5 Sek.

aber wie setze ich das in Delphi mit Tdate oder Ähnliches um?



Gruß Orion

Sherlock 16. Apr 2008 09:29

Re: Berechnung eines Timers?
 
Das einfachste wäre vor dem Vorgang ein Now in ein TDateTime zu speichern, und nach dem Vorgang die Differenz zu dem dann aktuellen Now zu bilden.

Es gibt aber auch einen Tickcounter den Du abfragen kannst (GetTickCounter), dann bekommst Du es auf Millisekunden genau.

Sherlock

gmc616 16. Apr 2008 10:52

Re: Berechnung eines Timers?
 
Zitat:

Zitat von orion3000
aber wie setze ich das in Delphi mit Tdate oder Ähnliches um?

Now() = Jetzt

Now() + 1 = morgen um die gleiche Zeit.

Mit GetTickCount bekommst du die aktuelle Zeit in Millisekunden(?).
Mit einem Zweiten GetTickCout kannst du die Differenz zwischen dem 2. GetTickCount und dem 1. GetTickCount ermitteln in Millisekunden.

Und wieviele Tage 1 Millisekunde sind, kriegst du sicherlich auch noch raus.

1 Tag * 24 Stunden * 60 Minuten * 60 Sekunden * 1000 Millisekunden = 86.400.000 Millisekunden.

Wenn du für 1 MB schreiben, 5 Sekunden benötigst:

5 Sekunden / 60 Minuten / 24 Stunden = 0,00347222 Tage

Also: Now() + 0,00347222 = Jetzt + 5 Sekunden.

Ich hoffe, ich hab richtig gerechnet. :wink:

hathor 16. Apr 2008 13:14

Re: Berechnung eines Timers?
 
Zitat:

Zitat von gmc616
Zitat:

Zitat von orion3000
aber wie setze ich das in Delphi mit Tdate oder Ähnliches um?

Now() = Jetzt

Now() + 1 = morgen um die gleiche Zeit.

Mit GetTickCount bekommst du die aktuelle Zeit in Millisekunden(?).
Mit einem Zweiten GetTickCout kannst du die Differenz zwischen dem 2. GetTickCount und dem 1. GetTickCount ermitteln in Millisekunden.

Und wieviele Tage 1 Millisekunde sind, kriegst du sicherlich auch noch raus.

1 Tag * 24 Stunden * 60 Minuten * 60 Sekunden * 1000 Millisekunden = 86.400.000 Millisekunden.

Wenn du für 1 MB schreiben, 5 Sekunden benötigst:

5 Sekunden / 60 Minuten / 24 Stunden = 0,00347222 Tage

Also: Now() + 0,00347222 = Jetzt + 5 Sekunden.

Ich hoffe, ich hab richtig gerechnet. :wink:

RECHNEN und deutscher AUSDRUCK sind nicht Deine Stärke!
Glaubst Du, mit diesem M... kann jemand was anfangen?

brechi 16. Apr 2008 13:16

Re: Berechnung eines Timers?
 
Zitat:

Zitat von hathor

RECHNEN und deutscher AUSDRUCK sind nicht Deine Stärke!
Glaubst Du, mit diesem M... kann jemand was anfangen?

Wenn man nicht so total dumm ist wie du mit Sicherheit ja.

nicodex 16. Apr 2008 13:22

Re: Berechnung eines Timers?
 
Zitat:

Zitat von hathor
RECHNEN und deutscher AUSDRUCK sind nicht Deine Stärke!
Glaubst Du, mit diesem M... kann jemand was anfangen?

Auch wenn man nur schlechtes zu sagen hat, sollte man auf seine Formulierungen achten.
(eigentlich sollte man in diesem Fall eher schweigen)

Wie wäre es mit einer besseren Beschreibung oder Korrektur?

DeddyH 16. Apr 2008 13:30

Re: Berechnung eines Timers?
 
Zitat:

Zitat von nicodex
Auch wenn man nur schlechtes zu sagen hat, sollte man auf seine Formulierungen achten.

:thumb:

Blackheart 16. Apr 2008 13:32

Re: Berechnung eines Timers?
 
Wie wäre es denn auf eine Reaktion des Fragestellers zu warten. :wink:

Sherlock 17. Apr 2008 09:23

Re: Berechnung eines Timers?
 
Der war bestimmt schon mit meiner Antwort zufrieden 8)

Sherlock


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz