JMPでは、BLOBと呼ばれるバイナリ大容量オブジェクト(Binary Large OBject)も扱うことができます。以下の関数は、16進数の値、数値、文字、BLOBの間での変換を行います。一部の関数については、16進数の関数とBLOB関数の後に詳しい説明があります。
詳細については、『スクリプト構文リファレンス』の「JSL関数」章を参照してください。
Hex("text")
Hex("num")
Hex("blob")
|
Char To Hexは別名です。
|
Hex To Blob("hexstring")
|
|
文字列のデフォルトのエンコーディングはutf-8です。また、utf-16le、utf-16be、us-ascii、iso-8859-1、ascii~hex、shift-jis、およびeuc-jpもサポートされています。
|
|
Char To Blob("string")
|
blobのデフォルトのエンコーディングはutf-8です。また、utf-16le、utf-16be、us-ascii、iso-8859-1、ascii~hex、shift-jis、およびeuc-jpもサポートされています。
|
Blob To Char("blob")
|
文字列のデフォルトのエンコーディングはutf-8です。また、utf-16le、utf-16be、us-ascii、iso-8859-1、ascii~hex、shift-jis、およびeuc-jpもサポートされています。
|
Hex(string)は、引数の各文字に対応する16進数のコードを返します。
例:
例:
Hex( "Abc" );
"416263"
Hex to Char(string)は、16進数を文字に変換します。戻り値の文字が、有効な表示文字でない場合があります。すべての文字は、0-9、A-Z、またはa-zのいずれかの2文字で表されます。スペースまたはカンマは、無視されます。例:
Hex To Char( "4142" );
"AB"
HexとHex To Charは、逆の処理を行うため、たとえば、
Hex To Char( Hex( "Abc" ) );
"Abc"
Hex To Blob(string)は、16進表記の文字列(string)をバイナリオブジェクトに変換します。
a = Hex To Blob( "6A6B6C" );
Show( a );
Blob Peek(blob,offset,length)は、引数で指定されたバイトをblobから抽出します。
b = Blob Peek( a, 1, 2 );
Show( b );
b = Blob Peek( a, 0, 2 );
Show( b );
b = Blob Peek( a, 2 );
Show( b );
Hex(blob)は、blobを16進に変換します。
c = Hex( a );
Show( c );
d = Hex To Char( c );
Show( d );
Concat(blob1,blob2)とblob1 || blob2は、2つのblobを連結します。
e = Hex To Blob( "6D6E6F" );
Show( e );
f = a||e;
Show( f );
Length(blob)は、blobのバイト数を戻します。
g = Length( f );
Show( g );
このとき、ASCIIの範囲外は、ASCII文字ではなく、波線のあとに16進数を示す方法で表記されます。なお、ASCIIの範囲は、スペース(space)から、閉じ中括弧(})までです(16進数のコードで言うと、20から7Dまでです)。
例: h = Hex To Blob( "19207D7E" ); Show( h );
i = Hex( h ); Show( i );
Char To Blob(string)は、文字列からBLOBを作成します。Blob To Char(blob)は、BLOBから文字列を作成します。これらにおいて、表示できないコードやASCII文字ではないコードは、波線と16進数(~XX)によって表わされます。
|