System.Classes.HexToBin
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::Sysutils::TBytes &Buffer, int BufOffset, int Count)/* overload */;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | System.Classes.pas System.Classes.hpp |
System.Classes | System.Classes |
説明
16 進数字の文字列を、対応する 2 進値に変換します。
HexToBin を呼び出すと、16 進数の文字列 Text
を、文字列を表す 2 進数値に変換することができます。
この関数は、次のパラメータを受け取ります:
パラメータ | 説明 |
---|---|
|
16 進値を表す文字列のポインタです。 例: "1decaf"
|
|
入力文字列の先頭からスキップする文字の数です。 たとえば、 |
|
16 進入力文字列の値を受け取るバイト配列のポインタです。 たとえば、入力文字列が "1decaf" の場合、出力バイナリ値は |
|
出力バイト配列の先頭からスキップするバイト数です。 たとえば、 |
|
出力バイト配列に変換するバイト(16 進文字のペア)の数です。
|
HexToBin を呼び出すときは、入力文字列のオフセット(TextOffset
)または出力バッファのオフセット(BufOffset
)を指定しても指定しなくてもかまいません。 ただし、これらのオフセットを両方とも指定するか、両方とも指定しないか、のどちらかでなければなりません。
16 進文字でない文字が HexToBin で見つかった場合は、変換が中止され値が返されます。 たとえば、"9abcdefg" という文字列が与えられた場合、HexToBin では "9abcde" のみ変換します。次の文字ペア("fg")に無効な文字("g")が含まれているからです。
HexToBin の戻り値は、HexToBin の呼び出し内でオフセットを指定するかどうかによって変わります:
- オフセットを指定した場合、入力文字列から読み取られ
Buffer
にバイナリで書き込まれたバイト数が戻り値になります。 たとえば、"9abcdefg" という文字列が与えられた場合、戻り値は 3 になります。読み取ったのが 3 バイトだからです("fg" には無効な文字が含まれているので "9abcde" のみ)。 - オフセットを指定しなかった場合は、入力文字列から読み取られず
Buffer
にバイナリで書き込まれなかったバイト数(BufSize
に書き込まれたバイト数をBuffer
から差し引いた値)が戻り値になります。 たとえば、与えられた文字列が "9abcdefg" でBufSize
が 4 の場合、戻り値は 1 になります。想定している 4 バイトのうち 3 バイトのみ読み取ったからです("fg" には無効な文字が含まれているので "9abcde" のみ)。