Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Dec to Hex (https://www.delphipraxis.net/118589-dec-hex.html)

rich123 11. Aug 2008 08:46


Dec to Hex
 
Hallo,

Ich suche eine Delphi Funktion die einen Dezimal Wert nach Hex wandelt. (Mit Nachkommastellen!!)

Da kann mir InttoHex leider nicht helfen.

Danke

toms 11. Aug 2008 08:53

Re: Dec to Hex
 
Hallo, meinst du FloatToHex?

rich123 11. Aug 2008 09:00

Re: Dec to Hex
 
Hallo,

Ich benutze auch Delphi 7 aber die Funktion wird nichtgefunden.
Brauche ich eine bestimmte Bibliothek?

Danke schonmal

Sherlock 11. Aug 2008 09:05

Re: Dec to Hex
 
Ist nicht Dein Ernst, oder? ;)

Steht doch alles im Link.

Sherlock

Panthrax 11. Aug 2008 09:06

Re: Dec to Hex
 
Vielleicht so in etwa? (schnell reingehämmert, ungetestet:)
Delphi-Quellcode:
Result:=IntToHex(Trunc(X))+','+IntToHex(Round(Trunc((X-Trunc(X))*Power(10,Y)))); // N = Anzahl Nachkommastallen
FloatToHex müsstest du dir von der Internetseite kopieren. Das ist nämlich nur ein Vorschlag es in die RTL zu integrieren. Aber wozu braucht man das überhaupt? :gruebel:

rich123 11. Aug 2008 09:10

Re: Dec to Hex
 
ja war mein fehler, hab die funktion aus dem Link nun auch probiert, aber die liefert mir ziemlich falsche Werte. Funktioniert die bei euch?

Panthrax 11. Aug 2008 09:16

Re: Dec to Hex
 
Ja, sie funktioniert. Aber bist du dir sicher, dass du verstehst wie sie funktioniert?

rich123 11. Aug 2008 09:19

Re: Dec to Hex
 
Eher nicht, könntest du sie vielleicht kurz erklären?

toms 11. Aug 2008 09:21

Re: Dec to Hex
 
Delphi-Quellcode:
Label1.Caption := FloatToHex(123.344)

Delphi-Quellcode:
function FloatToHex(const x: double): string;
type
  tBA = array [0..SizeOf(x)-1] of byte;
var
  Buf: tBA; i: integer;
begin
  For i := 0 to high(tBA)
    do Buf[high(tBA)-i] := tBA(x)[i];
  If (Buf[0] and $80) = 0  {Modif 2007-08-18 by JFH}
    then Buf[0] := Buf[0] xor $80
    else for i := 0 to high(tBA) do Buf[i] := not Buf[i];
  SetLength(Result,SizeOf(Buf)*2);
  BinToHex(@Buf,PChar(Result),SizeOf(Buf));
end;

rich123 11. Aug 2008 09:29

Re: Dec to Hex
 
Hallo toms,

Genau das habe ich auch probiert und dann kommt als Lösung

C05ED604189374BC

Wenn ich das in den Windows Rechner schmeisse liefert der mir eine enorm hohe Zahl.
Ich denke ich mache da was mit dem Komma falsch.

oder?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 Uhr.
Seite 1 von 3  1 23      

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