Truncate
指定した開始方向から指定した文字数を切り捨てた残り部分を返します。
■入力/出力
接続数: 最小 1/最大 2
入力 | データ型 | 説明 |
入力1 | String | 文字列 |
入力2 | Integer | 存在する場合、切り捨てる文字数プロパティを置換 |
出力 | データ型 | 説明 |
出力1 | String | 切り出した文字列 |
■プロパティ
名前 | プロパティ型 | 説明 |
切り捨てる方向 | choice |
開始方向を指定します。
先頭から [true]
| - |
文字列の先頭(左端)から開始します。
|
末尾から [false]
| - |
文字列の末尾(右端)から開始します。
|
|
切り捨てる文字数 | int | 切り捨てる文字数を指定します。開始方向から指定した文字数を切り捨てます。
入力の文字列長より大きい場合、空文字列を返します。
|
文字数の単位 | choice |
文字数の数え方を指定します。
文字 [String]
| - |
文字数で数えます。
|
バイト [Binary]
| - |
バイト数で数えます。
|
|
エンコーディング | choice | 文字数をバイト数で数える場合のエンコーディングを指定します。 |
■備考
-
切り捨てる文字数に0以下を指定したときはエラーとなります。
■単位がバイト数の場合の文字数の取り扱いについて
「文字数の単位」プロパティで「バイト」を選択する場合、文字数は指定のエンコーディングでのバイト単位で数えられます。
文字列"あいうえお"をshitf_jisとutf-8であらわすとそれぞれ次のようなバイト列になります。
shift_jis: 82 A0 82 A2 82 A4 82 A6 82 A8
utf-8: E3 81 82 E3 81 84 E3 81 86 E3 81 88 E3 81 8A
例えば、Left関数で、取り出す文字数(バイト数)を"6"とした場合、エンコーディングがshift_jisであれば「あいう」の3文字が、utf-8であれば「あい」の2文字が出力されます。
取り出す文字数を"5"とした場合、どちらのエンコーディングでも文字の途中で区切られることになりますが、この場合は指定のバイト数内に収まるように文字列が切り詰められます。つまり、shift_jisの場合は「あい」2文字(4バイト)、utf-8の場合は「あ」1文字(3バイト)が出力されます。
(Mid関数で、「開始位置」プロパティの指定により開始位置が文字の途中で区切られる場合は開始位置は後ろにずらされます。)
[注意] iso-2022-jpのようにShiftIn/ShiftOutのある文字コードの場合、「文字数の単位」プロパティで「バイト」を選択すると正しい結果は得られません。
[注意] プラットフォームがAIXの場合、文字の途中で区切られると正しい結果が得られない場合があります。
■例
| プロパティ | 出力 |
入力1 | インフォテリア | 切り捨てる方向 | 先頭から | テリア |
| | 切り捨てる文字数 | 4 | |
| | 文字数の単位 | 文字 | |
| プロパティ | 出力 |
入力1 | インフォテリア | 切り捨てる方向 | 末尾から | インフ |
| | 切り捨てる文字数 | 4 | |
| | 文字数の単位 | 文字 | |