substrb関数は、項目参照で示す文字列の、指定した位置のバイト数から指定したバイト長の文字列を返却します。
substrb関数の書式を以下に示します。
図4.7 substrb関数の書式
参照
項目参照については、“3.1.9 項目参照”を参照してください。
開始位置は、文字列の取得する開始位置を示します。(先頭は0から数えます)
長さは、開始位置から取得するバイト数を示し、省略時は256が指定されたとみなします。
長さに指定できる値は、1~256です。
長さは、開始位置から取得するバイト長を示し、省略時は開始位置以降の文字列すべてをそのまま返します。
長さに指定できる値は、1以上です。
以下の場合には、指定した代替文字が返信データの一部として出力されます。
代替文字は、返信データの1バイトに対応して出力されます。(開始位置が3バイト文字の2バイト目を指している場合には、2バイト目と3バイト目が代替文字に置き換わります。)
開始位置が、マルチバイト文字の2バイト目以降の場合
指定したバイト長がマルチバイト文字の途中となった場合
代替文字を省略した場合には、代替文字への置き換えはされず、実行時エラーとなります。
代替文字に指定できる文字は、以下の1バイト文字となります。
文字コード 0x20 ~ 0x7e のエリアの文字
ただし、以下の文字は、指定不可です。
二重引用符「”」(文字コード0x22)
大小記号「<、>」(文字コード 0x3c 0x3e)
アンドマーク「&」(文字コード 0x26)
シングルクオート「’」(文字コード 0x27)
また、「半角空白」は「\s」、「バックスラッシュ」は「\\」で指定してください。
変換が正常に動作した場合は、文字列型を返します。
substrb関数を利用してデータから部分文字列を取出します。取出した文字列の長さが固定長の5バイトになるように、末尾にアンダースコアを埋めます。
key | value |
---|---|
1001 | A1FJ |
1002 | B2FJM |
1003 | C3FMCS |
1004 | D4FEAST |
JnlFile | Jnl "input.csv" |
LCondition | { $value1 := concat( $value ; "_____") } |
OutputDef | { $key, substrb($value1, 2, 5 ) value } |
OutFile | output.csv |
key | value |
---|---|
1001 | FJ___ |
1002 | FJM__ |
1003 | FMCS_ |
1004 | FEAST |
注意
指定された開始位置が、マルチバイト文字の途中の場合や、指定したバイト長がマルチバイト文字の途中となった場合には、そのマルチバイト文字の可視化ができないため、実行時エラーとなります。
ただし、代替文字を指定することで、実行時エラーとはせずに、該当箇所を代替文字に置き換えて出力します。
グループ式やソート式に代替文字を指定したsubstrb関数が指定された場合には、代替文字を含む文字列が、グループキー、ソートキーとして処理されます。