Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Mehr als ein Byte(Hex) in Integer umwandeln (https://www.delphipraxis.net/112072-mehr-als-ein-byte-hex-integer-umwandeln.html)

Mdbelen 14. Apr 2008 19:47


Mehr als ein Byte(Hex) in Integer umwandeln
 
Hi
Ich krieg durch ein IdUDPServerUDPRead-Event Daten in einen String.
Davon will ich dann zwei Bytes in eine Integer-Zahl umwandeln, also z.B. String[4] und String[5], die aber zusammen gehören, also z.B. [4]=FF [5]=FF in 65535
Einzelne Bytes wandel ich mit Ord() um, aber wie das bei mehr gehen soll hab ich keine Ahnung..
__
Delphi-Quellcode:
StringList.Add(IntToStr(BytesToInteger(ToBytes(Copy(DerString, 4, 2)))));
Da hab ichs mit BytesToInteger(aus IdGlobal) probiert, aber dabei kommen komische 7-stellige Werte raus, was bei zwei Bytes gar nicht sein kann..und ausserdem ist das ja eh bissi komisch weil ich das da als hin- und her wandle..

freu mich schon auf ne Lösung, weil ich da irgendwie schon ewig dran häng :(

mkinzler 14. Apr 2008 19:48

Re: Mehr als ein Byte(Hex) in Integer umwandeln
 
Wenn du die beiden Zeichen an $ anhängst, sollte auch StrToInt() gehen

Mdbelen 14. Apr 2008 20:07

Re: Mehr als ein Byte(Hex) in Integer umwandeln
 
leider nicht.. wenn man jetzt mal von nem 1-Zeichen-String ausgeht, enthält der dann nämlich nicht "FF" (wärn ja auch 2 Zeichen^^), sondern Chr($FF)
also ich will an den Hexadezimalen Wert davon ran. irgendwie so..(kann mich grad net so gut ausdrücken, sry :roteyes: )

mkinzler 14. Apr 2008 20:15

Re: Mehr als ein Byte(Hex) in Integer umwandeln
 
Delphi-Quellcode:
StrToInt( '$ff')
sollte aber 255 ergeben

Klaus01 14. Apr 2008 20:17

Re: Mehr als ein Byte(Hex) in Integer umwandeln
 
Delphi-Quellcode:
StrToInt('$'+String[4]+String[5]);

SirThornberry 14. Apr 2008 20:18

Re: Mehr als ein Byte(Hex) in Integer umwandeln
 
nein. Er sagt ja das der string nicht so aussieht '123FF' sondern so: '123'#ff#ff

2 Byte wären übrigens ein Word

Delphi-Quellcode:
var
  your_word: Word;
begin
  your_word := PWord(@dein_string[4])^;
Warum du da von Hex sprichst ist mir allerdings unklar. Denn Hexdecimal wäre einfach nur eine darstellungsform. letztendlich liegt es binär vor.

Mdbelen 14. Apr 2008 20:28

Re: Mehr als ein Byte(Hex) in Integer umwandeln
 
jaa.. hm, du hast es erkannt.. vermutlich sprech ich von binär :stupid:
naja, auf jeden Fall geht's so ( StringList.Add(IntToStr(PWord(@ARLReceived[4])^)); )
vielen dankö..

DP-Maintenance 14. Apr 2008 21:31

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Internet / LAN / ASP.NET" nach "Object-Pascal / Delphi-Language" verschoben.
Das hat irgendwie nichts mit Netzwerk zu tun... ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz