Ein paar Delphi-Fragen

Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Ein paar Delphi-Fragen

 · 
Posted: 25.12.2018 - 12:37  ·  #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
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Ein paar Delphi-Fragen

 · 
Posted: 25.12.2018 - 18:30  ·  #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
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Ein paar Delphi-Fragen

 · 
Posted: 26.12.2018 - 10:59  ·  #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
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Ein paar Delphi-Fragen

 · 
Posted: 26.12.2018 - 12:22  ·  #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
Gender:
Age: 24
Posts: 1409
Registered: 03 / 2005
Subject:

Re: Ein paar Delphi-Fragen

 · 
Posted: 26.12.2018 - 13:56  ·  #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
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Ein paar Delphi-Fragen

 · 
Posted: 26.12.2018 - 16:05  ·  #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
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 14 · Cache Hits: 14   107   121 · Page-Gen-Time: 0.038123s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI