AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?

Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?

Ein Thema von Der schöne Günther · begonnen am 25. Apr 2013 · letzter Beitrag vom 25. Apr 2013
Antwort Antwort
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?

  Alt 25. Apr 2013, 10:47
Konkretes Beispiel:

SysUtils.Now() - Die Dokumentation schreibt:
Zitat:
Anmerkung: Obwohl TDateTime-Werte auch Millisekunden darstellen können, wird Now immer auf die nächste Sekunde gerundet.
Schaue ich mir die (Windows-)Implementation von Now() an:
Delphi-Quellcode:
function Now: TDateTime;
var
   SystemTime: TSystemTime;
begin
   GetLocalTime(SystemTime);
   with SystemTime do
      Result := EncodeDate(wYear, wMonth, wDay) +
         EncodeTime(wHour, wMinute, wSecond, wMilliseconds);
end;
Sowohl die WinAPI-Methode GetLocalTime als auch die Delphi-Implementation der WinAPI-Struktur SYSTEMTIME kennen Millisekunden:

Delphi:
Delphi-Quellcode:
  _SYSTEMTIME = record
    wYear: Word;
    wMonth: Word;
    wDayOfWeek: Word;
    wDay: Word;
    wHour: Word;
    wMinute: Word;
    wSecond: Word;
    wMilliseconds: Word;
  end;
TSystemTime = _SYSTEMTIME;
WinAPI:
Code:
typedef struct _SYSTEMTIME {
  WORD wYear;
  WORD wMonth;
  WORD wDayOfWeek;
  WORD wDay;
  WORD wHour;
  WORD wMinute;
  WORD wSecond;
  WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME;
Ich verwende in meinen Projekten Now() momentan auch so, dass ich die Millisekunden benutze und alles funktioniert auch bestens. Jetzt frage ich mich
  1. Warum lügt die Delphi-Hilfe mich an?
  2. Sollte ich ihr doch besser glauben und nicht mehr auf die Millisekunden vertrauen? Vielleicht ändert sich das ja in Zukunft.


Ich bin gespannt auf Meinungen und Ratschläge.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?

  Alt 25. Apr 2013, 10:54
Ich glaube nicht, dass die lügen, sondern der Doku von Microsoft folgten, die wohl dieses Runden mal beinhaltet hat.

Siehe http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Diese Doku ist zuletzt in 2012 aktualisiert worden und ein Kommentar von 2011 besagt, dass die Funktion doch Millisekunden auflöst. Das macht nur Sinn, wenn die Doku zu dem Zeitpunkt etwas anderes behauptet hat
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?

  Alt 25. Apr 2013, 10:58
Destruktive Absichten wollte ich der Doku jetzt nicht unterstellen, vielleicht einfach nur seit 15 Jahren nicht mehr aktualisiert (wie Hinweise, dass 16 Threads schon wirklich sehr viel seien oder Form-Transparenz erst ab einem Pentium 1 mit 90 MHz verfügbar ist)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?

  Alt 25. Apr 2013, 11:00
Ja und?
Letztlich ist das doch Scheingenauigkeit. Ob eine Aufgabe in 200 Millisekunden früher oder später erledigt ist, sollte dem Benutzer egal sein.

Falls Du die Millisekunden wirklich brauchst, solltest Du auf andere Quellen zurückgreifen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?

  Alt 25. Apr 2013, 11:08
Vielleicht ist sein Problem gerade andersrum.
Markus Kinzler
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?

  Alt 25. Apr 2013, 11:14
Dass Windows sowieso kein Echtzeit-OS ist und die Genauigkeit der Zeitstempel sowieso nicht sonderlich hoch ist weiß ich auch.

Es geht mir auch nicht wirklich um diesen konkreten Fall von Zeitangaben in Millisekunden, sondern von was ich, im Falle von Embarcadero Delphi tun soll:

Mich strikt an die Dokumentation halten denn in Zukunft könnte die bestens funktionierende Implementation geändert werden und zusätzliche Beschränkungen greifen plötzlich -

Oder prüfen, ob die Hilfe nicht die Wahrheit spricht und mich an der Implementation orientieren.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?

  Alt 25. Apr 2013, 12:30
Mich strikt an die Dokumentation halten denn in Zukunft könnte die bestens funktionierende Implementation geändert werden und zusätzliche Beschränkungen greifen plötzlich
Du kannst mit hoher Wahrscheinlichkeit davon ausgehen, dass die Now-Funktion auch in Zukunft Millisekunden liefern wird.
Rein logisch gesehen würde es überhaupt keinen Sinn machen auf volle Sekunden zu runden.
Im Gegenteil - man davon ausgehen, dass die Real-Time-Clocks in moderner Hardware immer besser werden und die Uhrzeit, die man über Now() erhält auf wenige Millisekunden genau sind.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.993 Beiträge
 
Delphi 12 Athens
 
#8

AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?

  Alt 25. Apr 2013, 12:50
Mich strikt an die Dokumentation halten denn in Zukunft könnte die bestens funktionierende Implementation geändert werden und zusätzliche Beschränkungen greifen plötzlich -

Oder prüfen, ob die Hilfe nicht die Wahrheit spricht und mich an der Implementation orientieren.
Rein statistisch liegt die Implementation deutlich öfter an der Realität als die Dokumentation
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?

  Alt 25. Apr 2013, 13:20
[OT]Wenn ich liese, das Meer würde sich teilen, schritte ich hindurch ... ich würde eher auf meine praktischen Erfahrungen setzen und den Quatsch lassen. [/OT]
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?

  Alt 25. Apr 2013, 13:29
Aber von den Leuten die mutig genug waren, das Unmögliche zu wagen und erfolgreich waren, erzählt man sich noch tausende Jahre nachher.

Zusammenfassend:

Frage: Setze ich in Zukunft eher auf die Glaubensgrundsätze die mir die Delphi-Hilfe predigt oder meinen gesunden Menschenverstand?
Antwort: Wage, dich deines eigenen Verstandes zu bedienen.


Ich habe das Gefühl, grade zu einer gewaltigen Erkenntnis gelangt zu sein...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:02 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