Ein paar Delphi-Fragen

Harry
Moderator
Avatar
Geschlecht:
Herkunft: zwischen Augsburg und Ulm
Alter: 60
Beiträge: 2155
Dabei seit: 03 / 2003
Betreff:

Ein paar Delphi-Fragen

 · 
Gepostet: 25.12.2018 - 12:37 Uhr  ·  #1
Hallo,

ich habe hier eine Unit mit einer Procedure, die wohl in Delphi geschrieben wurde und ein paar Fragen dazu (ich hab früher mal Turbo Pascal benutzt, aber danach setzt es aus).

- ich vermute mal, daß der Datentyp Double unserem Fix64 entspricht, oder?
- was ist der Dateityp TDateTime?
- was machen die Proceduren DecodeDate und EncodeDate?

In der mir im Quellcode vorliegenden Unit wurden die Delphi-Units SysUtils und Math importiert.

Vielleicht kann mir ja einer die Fragen beantworten, ich möchte das in einem AVRCo-Prog verwenden.

Gruss
Harry
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 26
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: Ein paar Delphi-Fragen

 · 
Gepostet: 25.12.2018 - 18:30 Uhr  ·  #2
Hallo Harry,
Double ~ Fix64. Beide sind 64bit Typen.
Der erstere ist halt Floating point, der zweite Fixed point.
In den allermeisten Fällen kann man davon ausgehen dass diese "kompatibel" sind.

Diese Date und Time Funktionen sind Delphi Spezial. Man kann sowas
im AVRco nur nachbilden mit einer RTC. Oder mit einer Internet Zeit......

rolf
Harry
Moderator
Avatar
Geschlecht:
Herkunft: zwischen Augsburg und Ulm
Alter: 60
Beiträge: 2155
Dabei seit: 03 / 2003
Betreff:

Re: Ein paar Delphi-Fragen

 · 
Gepostet: 26.12.2018 - 10:59 Uhr  ·  #3
Hallo Rolf,

ok danke. Ich habe inzwischen selber noch was heraus gefunden: DecodeDate wandelt ein Datum (das als TDateTime-Variable gespeichert ist) in Tag, Monat und Jahr um, EncodeDate ist das Gegenteil. Die TDateTime-Variable ist ein 64-Bit Typ, bei dem im Vorkomma-Teil das Datum und im Nachkomma-Teil die Uhrzeit steht. Das Datum wird dabei als vergangene Tage seit dem 30.Dezember 1899 gespeichert.

Da bei meiner Unit mit dieser Funktion nur der Tag-des-Jahres errechnet wird und ich das auch auf anderem Wege machen kann, spielt es keine Rolle.

Gruss
Harry
Harry
Moderator
Avatar
Geschlecht:
Herkunft: zwischen Augsburg und Ulm
Alter: 60
Beiträge: 2155
Dabei seit: 03 / 2003
Betreff:

Re: Ein paar Delphi-Fragen

 · 
Gepostet: 26.12.2018 - 12:22 Uhr  ·  #4
Ist sowas in Delphi echt erlaubt?
Code
Function RMod(X,Y:Double):Double;
  Begin
    Result := X - Int(X/Y) * Y;
  End;

Also Kommazahl - Integer * Kommazahl?

Rechnet Delphi eigentlich von sich aus Punkt vor Strich?

Harry
Merlin
Administrator
Avatar
Geschlecht:
Alter: 26
Beiträge: 1476
Dabei seit: 03 / 2005
Betreff:

Re: Ein paar Delphi-Fragen

 · 
Gepostet: 26.12.2018 - 13:56 Uhr  ·  #5
In Delphi the function is legal. '*' and '-' apply to both double and integer, and you may multiply a double by an integer. If you are trying to transfer to AVRCo you must be careful to add extra brackets to remove ambiguity. The 'precedence of operators' is not the same.
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 26
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: Ein paar Delphi-Fragen

 · 
Gepostet: 26.12.2018 - 16:05 Uhr  ·  #6
Hallo Harry,

soweit ich weiss ergibt Int(double) in Delphi kein Integer sondern
den ganzzahligen Wert von double aber wiederum als Double.
Macht der AVRco genauso.

rolf
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 14 · Cache Hits: 14   107   121 · Page-Gen-Time: 0.028068s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI