System.Classes.HexToBin

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

function HexToBin(const Text: PChar; TextOffset: Integer;
var Buffer: TBytes; BufOffset: Integer; Count: Integer): Integer; overload;
function HexToBin(const Text: TBytes; TextOffset: Integer;
var Buffer: TBytes; BufOffset: Integer; Count: Integer): Integer;
function HexToBin(Text: PWideChar; Buffer: Pointer; BufSize: Integer): Integer;
function HexToBin(const Text: PWideChar; var Buffer; BufSize: Integer): Integer;
function HexToBin(Text: PAnsiChar; Buffer: PAnsiChar; BufSize: Integer): Integer;
function HexToBin(Text: PWideChar; Buffer: PAnsiChar; BufSize: Integer): Integer;
function HexToBin(Text: PAnsiChar; var Buffer; BufSize: Integer): Integer;
function HexToBin(const Text: PAnsiChar; Buffer: Pointer; BufSize: Integer): Integer;

C++

extern DELPHI_PACKAGE int __fastcall HexToBin(const System::WideChar * Text, int TextOffset, System::DynamicArray<System::Byte> &Buffer, int BufOffset, int Count)/* overload */;

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
function public
System.Classes.pas
System.Classes.hpp
System.Classes System.Classes

Beschreibung

Konvertiert einen String mit Hexadezimalzeichen in den entsprechenden Binärwert.

Mit HexToBin können Sie den hexadezimalen String Text in den entsprechenden Binärwert, den der String darstellt, umwandeln.

Diese Funktion erhält die folgenden Parameter:

Parameter Beschreibung

Text

Zeiger auf eine String-Darstellung eines hexadezimalen Wertes.

Zum Beispiel: "1decaf".

Hinweise:
  • Die Anzahl der Eingabezeichen muss gerade sein. Das heißt, "3d" und "c3f0" sind beide gültige Eingabe-Strings, aber "2" oder "fda" sind ungültige Strings. Und zwar, weil der Binärwert in Byte (8 Bit) ausgegeben wird und hexadezimale Zeichen nur 4 Bit darstellen. Sie können auf der linken Seite Nullen hinzufügen, um diese Strings in gültige Strings umzuwandeln, ohne deren Wert zu ändern: "02", "0fda".
  • Dieser String muss kein nullterminierter String sein.

TextOffset
(optional)

Anzahl der Zeichen, die am Anfang des Eingabe-Strings übersprungen werden sollen.

Wenn Text beispielsweise "608da975" und TextOffset 4 ist, wird nur "a975" in einen Binärwert konvertiert.

Buffer

Zeiger auf ein Byte-Array, das den Wert des hexadezimalen Eingabe-Strings erhält.

Beispielsweise würde für den Eingabe-String "1decaf" der Ausgabebinärwert 00011101 11101100 10101111 (3 Byte) lauten.

BufOffset
(optional)

Anzahl der Bytes, die am Anfang des Ausgabe-Byte-Arrays übersprungen werden sollen.

Wenn beispielsweise Buffer vor dem Aufruf von HexToBin den Wert 00011101 11101100 10101111 enthält und TextOffset 1 ist, beginnt HexToBin mit dem Schreiben des Ausgabewertes beim zweiten Byte, und das erste Byte (00011101) bleibt unverändert.

BufSize oder
Count

Anzahl der Bytes (Paare von hexadezimalen Zeichen), die in das Ausgabe-Byte-Array konvertiert werden sollen.

Hinweis: Dieser Wert muss gleich oder kleiner als die halbe Länge des Eingabe-Strings sowie gleich oder kleiner als die halbe Länge des Ausgabe-Arrays sein. Zum Beispiel:
  • Wenn der Eingabe-String 8 Zeichen lang ist, muss dieser Wert 4 oder kleiner sein.
  • Wenn das Array 8 Byte lang ist, muss dieser Wert 8 oder kleiner sein.
  • Wenn der Eingabe-String 8 Byte und das Array 8 Zeichen lang ist, muss diese Zahl 4 oder kleiner sein (wegen der Stringlänge).

Sie können HexToBin mit oder ohne Angabe eines Offsets für den Eingabe-String (TextOffset) oder den Ausgabepuffer (BufOffset) aufrufen. Sie müssen jedoch entweder beide Offsets oder keinen angeben.

Wenn HexToBin ein nicht hexadezimales Zeichen findet, wird die Konvertierung abgebrochen und zurückgekehrt. Bei dem String "9abcdefg" konvertiert HexToBin nur "9abcde", weil das nächste Zeichenpaar ("fg") ein ungültiges Zeichen ("g") enthält.

Der Rückgabewert von HexToBin hängt davon ab, ob Sie in dem Aufruf von HexToBin Offsets angegeben haben:

  • Wenn Sie Offsets angegeben haben, dann ist der Rückgabewert die Anzahl der Bytes, die aus dem Eingabe-String gelesen und binär in Buffer geschrieben wurde. Für den String "9abcdefg" wird beispielsweise 3 zurückgegeben, weil 3 Byte gelesen wurden ("9abcde", "fg" enthält ein ungültiges Zeichen).
  • Wenn Sie keine Offsets angegeben haben, dann ist der Rückgabewert die Anzahl der Bytes, die nicht aus dem Eingabe-String gelesen und binär in Buffer (BufSize – in Buffer geschriebene Bytes) geschrieben wurde. Für den String "9abcdefg" und BufSize 4 wird beispielsweise 1 zurückgegeben, weil 3 Byte von 4 erwarteten gelesen wurden ("9abcde", "fg" enthält ein ungültiges Zeichen).

Siehe auch

Codebeispiele