Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Suche String->Hex Funktion (https://www.delphipraxis.net/166950-suche-string-hex-funktion.html)

Jumpy 7. Mär 2012 10:08

Delphi-Version: 2010

Suche String->Hex Funktion
 
Hallo,
suche eine Funktion, die mir einen (wahrsch. Ascii-)String Zeichen für Zeichen in die Entsprechende Hex-Darstellung umwandelt. Gibt es da in Delphi (2010) etwas? StrToHex oder so scheint die Hilfe nicht zu finden.

Mir würde es natürlich schon reichen, wenn es eine Funktion gibt, die einfach nur ein Zeichen in Hex umwandelt, analog wie es z.B. CHR() macht. Über den String iterieren kann ich dann zur Not noch selber.

Möchte halt ungern so eine Funktion selber schreiben, die ja nix anderes macht als die "Übersetzung" des Zeichens in einer Liste nachzugucken oder die aus 256 If-Elsen besteht, wenn es sowas doch bestimmt schon gibt.

mkinzler 7. Mär 2012 10:11

AW: Suche String->Hex Funktion
 
Delphi-Referenz durchsuchenStrToBin()

DeddyH 7. Mär 2012 10:14

AW: Suche String->Hex Funktion
 
Meinst Du so etwas?
Delphi-Quellcode:
Format('%.2x', [Ord('A')])

Bernhard Geyer 7. Mär 2012 10:20

AW: Suche String->Hex Funktion
 
Zitat:

Zitat von DeddyH (Beitrag 1155007)
Meinst Du so etwas?
Delphi-Quellcode:
Format('%.2x', [Ord('A')])

Wenn schon dann %.4x - Unser String ist ja schon seit 4 Versionen standardmäßig Unicode-Fähig :-)

Jumpy 7. Mär 2012 10:26

AW: Suche String->Hex Funktion
 
Danke Deddyh. Mit der Format-Funktion hat das geklappt. Muss zwar nochmal alle exotischen Zeichen ausprobieren, aber es sieht gut aus:

Delphi-Quellcode:
procedure TForm2.Button2Click(Sender: TObject);
begin
  showmessage(Hex(edCommand.Text));
end;

function TForm2.Hex(s: String): String;
var
  h:String;
  i:integer;
begin
  for i := 1 to Length(s) do
    h:=h+Format('%.2x', [Ord(s[i])]);
  Result:=h;
end;
StrToBin() kannte mein Delphi auch nicht :(

DeddyH 7. Mär 2012 10:34

AW: Suche String->Hex Funktion
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1155009)
Zitat:

Zitat von DeddyH (Beitrag 1155007)
Meinst Du so etwas?
Delphi-Quellcode:
Format('%.2x', [Ord('A')])

Wenn schon dann %.4x - Unser String ist ja schon seit 4 Versionen standardmäßig Unicode-Fähig :-)

So besser?
Delphi-Quellcode:
function StrToHex(const s: string): string;
var
  CharWidth, i: integer;
  FormatStr: string;
begin
  CharWidth := SizeOf(Char) * 2;
  FormatStr := Format('%%.%dx', [CharWidth]);
  for i := 1 to Length(s) do
    Result := Result + Format(FormatStr, [Ord(s[i])]);
end;

himitsu 7. Mär 2012 10:46

AW: Suche String->Hex Funktion
 
Zitat:

Zitat von mkinzler (Beitrag 1155006)

Nicht Delphi-Referenz durchsuchenStrToHex Delphi-Referenz durchsuchenBinToHex?

[edit]
Zitat:

StrToBin() kannte mein Delphi auch nicht
In der OH steht bei dir auch nichts dazu? (nicht daß nicht nur die Unit fehlte)

In den INDY sind auch Klassen dafür enthalten, falls die bei dir installiert sind.

Jumpy 7. Mär 2012 11:02

AW: Suche String->Hex Funktion
 
Die erste Variante mit .2 war schon OK. Ausgangspunkt wird ja wahrsch. ein Ansi-String sein. Daher kann die Gegenseite, der das als Command später geschickt wird, mit "2B3439..." wahrscheinlich mehr anfangen als mit "002B00340039...".

Kleines Rätsel für Gelangweilte: Was wird da wohl verschickt werden?

Und nochmal danke für die Beteiligung.

Neutral General 7. Mär 2012 11:39

AW: Suche String->Hex Funktion
 
IntToHex gibt es um eure Verwirrung mal aufzuheben ;-)

shmia 7. Mär 2012 12:50

AW: Suche String->Hex Funktion
 
Siehe Code-Library: http://www.delphipraxis.net/39740-he...aerstring.html
Diese Funktionen sind viel schneller als das Zeichenweise anhängen wie im Beispiel oben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:22 Uhr.
Seite 1 von 4  1 23     Letzte »    

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