Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Typenumwandlungen (https://www.delphipraxis.net/116167-typenumwandlungen.html)

endeffects 24. Jun 2008 15:25


Typenumwandlungen
 
Hallo,

ich hab ein Problem mit der Umwandlung von Typen.
Und zwar möchte ich den Wert 0x4FDD2F96 umwandeln
in 1339895702. D.h. irgendwie muss ich den Hexwert
in einen String umwandeln und dann aus jedem Zeichen
des Strings einen Integerwert bilden.

Ich hab es schon wie folgt probiert:

Delphi-Quellcode:
showmessage(IntToStr(Ord((Chr(StrToInt('$4F'))))));
Aber dann erhalte ich den Wert 79 und nicht 13 oder 133 ?!

Welche Umwandlung hier von nöten ist ist mir ehrlich gesagt
völlig schleierhaft.

Hat Jemand vielleicht einen Rat?

Mfg

1234588 24. Jun 2008 15:29

Re: Typenumwandlungen
 
Delphi-Quellcode:
LongInt($4FDD2F96)
:o)

Phoenix 24. Jun 2008 15:30

Re: Typenumwandlungen
 
Ist das was für Dich? http://www.delphipraxis.net/internal...?p=27809#27809

Ps: Das war ganz einfach gesucht nach Hier im Forum suchenHexToInt

Sherlock 24. Jun 2008 15:37

Re: Typenumwandlungen
 
Lustigerweise gibt es ein IntToHex in Delphi, aber kein HexToInt.

Das hab ich mal selber geschrieben (ist aber auch trivial):
Delphi-Quellcode:
function HexToInt(HexNum: string): LongInt;
begin
  if HexNum = '' then
    Result := 0
  else
  begin
    if Pos('$', HexNum) < 1 then
      Result := StrToInt('$' + HexNum)
    else
      Result := StrToInt(HexNum);
  end;
end;
Edit: Dank rotem Kasten eigentlich fast überflüssig...

Sherlock

endeffects 24. Jun 2008 15:43

Re: Typenumwandlungen
 
oh vielen dank für die zahlreichen und schnellen antworten.
die methode mit dem longint() funktioniert wunderbar
solange ich den hex wert eingebe, aber wie löse ich das
wenn ich anstelle des hex wertes einen normalen string habe?

Phoenix 24. Jun 2008 15:46

Re: Typenumwandlungen
 
Häh?

Genau das steht doch in dem von mir verlinkten Beitrag und der letzten Antwort von Sherlock drin??

endeffects 24. Jun 2008 15:57

Re: Typenumwandlungen
 
nein ich meine wenn ich keinen hex wert habe sondern lediglich einen string:

Delphi-Quellcode:
var s: String;
begin
showmessage(IntToStr(LongInt($4FDD2F96)));  //>> 1339895702

s:= Chr(StrToInt('$4F')) + Chr(StrToInt('$DD')) + Chr(StrToInt('$2F')) + Chr(StrToInt('$96'));
showmessage(s);
Wie bekomm ich denn jetzt aus dem string s den wert 1339895702 errechnet?

gammatester 24. Jun 2008 16:00

Re: Typenumwandlungen
 
Zitat:

Zitat von Phoenix
Häh?

Genau das steht doch in dem von mir verlinkten Beitrag und der letzten Antwort von Sherlock drin??


Naja, genau steht's ja nun nicht drin, da er von einer C-Hexzahl mit 0x... ausgeht und da fährt die HexToInt-Funktion gegen diw Wand. Aber die Richtung sollte klar sein.

Gruß Gammatester

Cyf 24. Jun 2008 16:01

Re: Typenumwandlungen
 
Delphi-Quellcode:
StrToInt('$4FDD2F96');
:thumb:

Oder was meinst du? :gruebel:

[Edit]
Zitat:

von einer C-Hexzahl mit 0x...
In dem Fall, muss der Strin natürlich erst entsprechend formatiert werden, aber das '0x' gegen ein '$' auzutauschen, sollte zu schaffen sein.

gammatester 24. Jun 2008 16:09

Re: Typenumwandlungen
 
Zitat:

Zitat von Cyf
In dem Fall, muss der Strin natürlich erst entsprechend formatiert werden, aber das '0x' gegen ein '$' auzutauschen, sollte zu schaffen sein.

Sag ich ja :)
Gammatester


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:03 Uhr.
Seite 1 von 2  1 2      

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