![]() |
GetTickCount immer sehr ähnliches Ergebnis
Delphi-Quellcode:
Die Caption von Label2 fängt immer - egal wie lang das zu Sortierende ist und egal, ob es 5 oder 30 Sekunden dauert, bis sortiert ist - mit 42949 an. Wie kann das sein!?
var anfang, ende:cardinal;
begin anfang:=GetTickCount; InsertSort; ende:=GetTickCount; label2.caption:=inttostr((anfang-ende)div 1000)+'s'; end; Edit: Falsch, wenn es sehr schnell ist, dann ist es 0. |
Re: GetTickCount immer sehr ähnliches Ergebnis
Probier mal ende - anfang ;)
ADD: Da du Cardinal genommen hast, und den Überlaufschutz deaktiviert hast, bemerkst du nicht, dass du unter Null kommst, und dann an der Obergrenze des Cardinals bist ... |
Re: GetTickCount immer sehr ähnliches Ergebnis
OH Gott...
Trotzdem danke... :) Hab eine halbe Stunde rumprobiert... Was meinst du mit deinem add? |
Re: GetTickCount immer sehr ähnliches Ergebnis
Wenn du die Überlaufprüfung abschaltest, wirst du keinen Fehler erhalten, falls du einer Variable einen Wert zuweist, der außerhalb ihres Bereichs liegt. Cardinal ist ein 32bit-Integer ohne Vorzeichen, also 0..4294967295 (entspricht z.B. in C# uint). Wenn du diesem einen negativen Wert zuweist, "klappt" er um, fängt also wieder von oben an ("42949...").
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz