バイト列の中から指定した長さのバイト列、または文字列を返します。
入力 | データ型 | 説明 |
---|---|---|
入力1 | Binary,String | データ |
入力2 | Integer | 存在する場合、開始位置プロパティを置換 |
入力3 | Integer | 存在する場合、取り出すバイト数プロパティを置換 |
出力 | データ型 | 説明 |
---|---|---|
出力1 | Binary,String | 切り出したデータ |
名前 | プロパティ型 | 説明 |
---|---|---|
開始位置 | int | 先頭文字の位置を1とした開始位置をバイト数で指定します。 |
取り出すバイト数 | int | 抽出するバイト数を指定します。 |
文字列"あいうえお"は、それぞれの文字エンコーディングの元でバイト列であらわすと以下のようになります。
shift_jis: 82 A0 82 A2 82 A4 82 A6 82 A8 euc-jp: A4 A2 A4 A4 A4 A6 A4 A8 A4 AA iso-2022-jp: 1B 24 42 24 22 24 24 24 26 24 28 24 2A 1B 28 42 utf-8: E3 81 82 E3 81 84 E3 81 86 E3 81 88 E3 81 8A
shift_jis/euc-jpは2バイトずつで1文字を表し、utf-8は日本語部分については3バイトずつで1文字を表し、iso-2022-jpにおいてはShiftIn/ShiftOutの3バイトではさみ、2バイトずつで1文字を表しています。
それぞれのバイナリ関数(LeftB/RightB/MidB/ReplaceB/TruncateB)は入力タイプとして、バイト列とそれ以外で種類分けします。バイト列に既になっている場合にはそのまま扱いますが、それ以外の場合は一端文字列に直し(文字列の場合はそのまま)、指定のエンコーディングでバイト列に直します。
LeftB/RightB/MidB/ReplaceB/TruncateBは、それぞれ操作をした後にできるバイト列に対して、出力としてバイト列のままだすのか、文字列に直して出力するのか選ぶことができます。バイト列の場合には、そのまま出力とし、文字列ならばバイト列が指定のエンコーディングでのバイト列とみなし文字列に直します。
それぞれの操作において、いわゆる漢字の泣き別れ状態など、文字列に戻せない状態になると、文字化けが発生する可能性があります。
プロパティ | 出力 | |||
入力1 | 0x82A082A282A4 | 開始位置 | 3 | 0x82A2 |
取り出すバイト数 | 2 |