Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi StrToHex Ersatz (https://www.delphipraxis.net/31921-strtohex-ersatz.html)

Neutral General 15. Okt 2004 17:12


StrToHex Ersatz
 
Ich benutz Delphi 3 Professional wo es diese Funktion leider nicht gibt... (Ich hasse Delphi 3 :evil: :mrgreen: )
Kann man sich die Funktion irgendwie selber für Delphi 3 "basteln" ?
Oder gibt es eine Andere Möglichkeit Strings in Hex umzuwandeln ?

Nightshade 15. Okt 2004 17:25

Re: StrToHex Ersatz
 
Zitat:

Zitat von Neutral General
Ich benutz Delphi 3 Professional wo es diese Funktion leider nicht gibt... (Ich hasse Delphi 3 :evil: :mrgreen: )

Das macht nichts, in D7 gibt es sie auch nicht, was es allerdings gibt wäre :

Delphi-Quellcode:
function IntToHex(Value: Integer; Digits: Integer): string; overload;
Musst du nur deinen String vorher mit StrToInt in einen Integer wandeln.

Neutral General 15. Okt 2004 17:38

Re: StrToHex Ersatz
 
Ok :

Delphi-Quellcode:
IntToHex(StrToInt('Toll das bringts ja auch'));
:mrgreen:

Gibt es andere Lösungen ?

Nightshade 15. Okt 2004 17:40

Re: StrToHex Ersatz
 
Was genau willst du den umwandeln, bzw. was steht in dem String drinn ?

Neutral General 15. Okt 2004 17:46

Re: StrToHex Ersatz
 
Einen beliebigen String wie

Delphi-Quellcode:
'Ein Haus'
in

Delphi-Quellcode:
45 69 6E 20 48 61 75 73
umwandeln.

Nightshade 15. Okt 2004 18:02

Re: StrToHex Ersatz
 
Delphi-Quellcode:
function StringToHex(s:string) : string;
var t : integer;
begin
  result := '';
  for t := 1 to length(s) do begin
    if t = length(s) then
      result := result + intToStr(ord(s[t]))
    else
      result := result + IntToStr(ord(s[t])) + ' ';
  end;
end;

bigg 15. Okt 2004 18:06

Re: StrToHex Ersatz
 
moin,
ich habe dir mal eine kleine Funktion geschrieben, die das macht.
Zur Information:
Ein Char und ein Byte sind fast identsich, nur die Darstellung ist anders.
Die Funktion Ord() liefert uns von einem Zeichen (Char) den Ascii-Code.
Wir ändern also nur die Darstellung des Bytes.

Code:
function StringToHex(Text: String): String;
var i: Integer;
begin Result := '';
for i := 1 to Length(Text) do
Result := Result + IntToHex(Ord(Text[i]), 2);
end;

Neutral General 15. Okt 2004 18:07

Re: StrToHex Ersatz
 
@ Nightshade : http://www.asciitable.com

hiernach ist das was bei deiner Funktion rauskommt falsch !

Delphi-Quellcode:
StrToHex('A');
ergibt bei dir '65', auf ASCIItable.com steht das es '41' sein muss (was auch stimmt) und 65 steht unter Dec bei 'A' ...

@ bigg : Danke, deine Funktion funktioniert ...

bigg 15. Okt 2004 18:10

Re: StrToHex Ersatz
 
Das wollte ich ja wohl auch meinen :-D

dizzy 15. Okt 2004 18:31

Re: StrToHex Ersatz
 
Zitat:

Zitat von Neutral General
@ Nightshade :
hiernach ist das was bei deiner Funktion rauskommt falsch !
Delphi-Quellcode:
StrToHex('A');
ergibt bei dir '65', auf ASCIItable.com steht das es '41' sein muss (was auch stimmt) und 65 steht unter Dec bei 'A' ...

Sie ist richtig. 65 ist halt im Dezimalsystem, und die 41 in Hex. Also 65d = 41h. Der Wert ist identisch - die Darstellung eine andere.
41 = 65 = 101 = 1000001 ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:10 Uhr.
Seite 1 von 2  1 2      

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