AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein TDateTime kann nicht korrekt verglichen werden
Thema durchsuchen
Ansicht
Themen-Optionen

TDateTime kann nicht korrekt verglichen werden

Ein Thema von berens · begonnen am 14. Feb 2011 · letzter Beitrag vom 16. Feb 2011
Antwort Antwort
Seite 2 von 2     12   
berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#11

AW: TDateTime kann nicht korrekt verglichen werden

  Alt 16. Feb 2011, 10:10
Es geht mir hier (aktuell) weniger um die Problematik, dass ich beim Vergleichen von TDateTime- oder Float-Werten zusätzlichen Programmieraufwand habe, weil bei z.B. dem einen Wert noch 600 ms eingerechnet sind, die bei dem Anderen fehlen und deshalb Beide nicht identisch sind.

Es geht mir drum, dass der Wert AlterDateTimeWert (TDateTime) in der "Liste überwachter Ausdrücke" von Delphi 10 Sekunden am Ende hat. Die Darstellung in der "Liste überwachter Ausdrücke" erfolgt in Delphi ja als String. Man (oder zumindest ich) denkt also: Der dargestellte Wert einer TDateTime entspricht DateTimeToStr(Variable).

Wenn ich mir nun aber DateTimeToStr(Variable), also in diesem Fall DateTimeToStr(AlterDateTimeWert) in der "Liste überwachter Ausdrücke" anzeigen lasse, erhalte ich 11 Sekunden am Ende.

Hier wird ja nichts "verglichen" in dem Sinne. Ich lasse den Wert einfach nur zweimal ausgeben. Einmal als String, einmal als TDateTime, den Delphi freundlicherweise auch direkt umwandelt in String. Also habe ich letztendlich doch zwei Strings für ein und den selben Wert. Tja, jetzt unterscheiden sich aber die Strings. Du kannst mir doch nicht ernsthaft erzählen wollen, dass dies korrekt oder sogar gewünscht ist?

---

Bzgl. vergleichen von TDateTime oder FloatWerten: Wenn ich beim Debuggen für die Variablen a und b in der Liste überwachter Ausdrücke die Werte angezeigt bekomme (beides Mal jeweils als Beispiel 0,123456789012345), und diese Werte 100% identisch sind, aber gleichzeitig (a=b) False ergibt, dann empfinde ich das nicht als Benutzerfreundlich. Ich wüsste zumindest nicht, wie ich Delphi dazu prügeln kann, mir 20 oder 30 Nachkommastellen anzuzeigen. Ich kann nur etwas korrigieren wenn ich weiss, dass ich etwas falsch gemacht habe. Wenn Delphi mir beim Debuggen sagt "A ist gleich B" aber die Abfrage "Ist A gleich B" liefert "Nein" zurück, steh ich halt schon erstmal blöde da.

Ich frage ich mich, und Dich, WM_CLOSE, woher soll man das auf Anhieb wissen, dass man sich auf die von Delphi zurückgegebenen Werte nicht verlassen darf? Habe ich im Handbuch irgendwo einen Paragraphen überlesen in dem steht: "Die Werte der Liste überwachter Ausdrücke und lokaler Variablen dienen nur zum groben Überblick der ungefähren Werte während des Laufzeit des Programmes. Sie spiegeln nicht zwangsläufig die tatsächlichen Werte wieder."?
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#12

AW: TDateTime kann nicht korrekt verglichen werden

  Alt 16. Feb 2011, 10:58
Sorry, ich dacht bei >250 Beiträge weiß man das, Hier im Forum und auch auf der Delphipraxis wurde schon ein paar mal davor gewarnt, dass alles, was keinen klaren Wert auch keine verlässlichee Information bietet. Ich wollte dir nicht zu nahe treten.

PS: Bitte trampelt den Thread und mich deswegen nicht nieder
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#13

AW: TDateTime kann nicht korrekt verglichen werden

  Alt 16. Feb 2011, 11:08
Ne kein Problem.

Umso mehr guck ich gerade doof aus der Wäsche zur Erfahren, dass es scheinbar tatsächlich "Grundwissen" von Delphi ist, dass die Werte in der Liste ungenau sind. oO

Naja, jetzt bin auch ich wieder ein Stück schlauer. Wenn man das weiss, dann kann man sich ja auch drauf einstellen und entsprechend reagieren.

Danke für die Aufklärung
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 14:01 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