# 文字列抽出 (左/右)

左端または右端から文字列を抽出します。

##### ブロック

##### テキスト

TARGET = substringFromLeft(INPUT, COUNT);
1 2 4 3

# | 説明
1 | [Destination Data] 抽出した文字列の格納先を設定します。
2 | 文字列を抽出する方向 ##### ブロック [FromLeft] [FromRight] ##### テキスト 'substringFromLeft' 'substringFromRight' 文字列を抽出するために使用した方向を選択します。 (例) 文字列: "ABCDE", [Number of characters]: 3 つの赤い文字が抽出されます。 [FromLeft] を選択した場合: ABC DE [FromRight] を選択した場合: AB CDE
3 | [Number of characters] 抽出する文字数を指定するブロックを設定します。値は 1 以上で、抽出できる文字数以下である必要があります。 2 バイト文字は 1 文字としてカウントされます。
4 | [Source Data] 抽出する文字列を格納するソースデータを設定します。

(例)

##### ブロック

##### テキスト

Var4 = substringFromLeft(Var3,Var1);

## オペレーション例

[Source Data] の変数 | [Way to extract] | [Number of characters] | [Destination Data] の変数 | コメント
対象文字列 | 最大バイト数 | 格納する抽出文字列
ABCDE | FromLeft | 3 | 5 | ABC | -
0 | 5 | (なし) | 変換された文字列は、 [Number of characters] が 1 より小さいため格納されません。「オペレーションの結果」オペレーションで失敗と判断されます。
3.6 | 5 | ABC | [Number of characters] の小数点以下は除外されます。
FromRight | 3 | 5 | CDE | -
-1 | 5 | (なし) | 変換された文字列は、 [Number of characters] が 1 より小さいため格納されません。「オペレーションの結果」オペレーションで失敗と判断されます。
3.7 | 5 | CDE | [Number of characters] の小数点以下は除外されます。
AB | FromLeft | 3 | 5 | (なし) | [Number of characters] が取得可能な文字数を超えているため、文字列は格納されません。「オペレーションの結果」オペレーションで失敗と判断されます。
FromRight | 3 | 5 | (なし) | [Number of characters] が取得可能な文字数を超えているため、文字列は格納されません。「オペレーションの結果」オペレーションで失敗と判断されます。
ABCD(0x00)C | FromRight | 3 | 5 | BCD | NULL (0x00) がある場合、文字列はそこで終了します。
AB(0x00)CD | FromLeft | 3 | 5 | (なし) | 文字列は格納されません。NULL (0x00) がある場合、文字列はそこで終了します。結果として、[Number of characters] が取得可能な文字数を超えます。「オペレーションの結果」オペレーションで失敗と判断されます。
AB(0x00)CDEF | FromRight | 3 | 5 | (なし) | 文字列は格納されません。NULL (0x00) がある場合、文字列はそこで終了します。結果として、[Number of characters] が取得可能な文字数を超えます。「オペレーションの結果」オペレーションで失敗と判断されます。
ABCDEFGH | FromLeft | 6 | 5 | (なし) | 変換された文字列は、格納できる最大バイト数を超えていたため格納されません。「オペレーションの結果」オペレーションで失敗と判断されます。
FromRight | 6 | 5 | (なし) | 変換された文字列は、格納できる最大バイト数を超えていたため格納されません。「オペレーションの結果」オペレーションで失敗と判断されます。
AあB | FromLeft | 3 | 5 | AあB | 文字列は、 [Number of characters] に基づいて格納されます。 *1
FromRight | 2 | 5 | あB | 文字列は、 [Number of characters] に基づいて格納されます。 *1

*1 [Destination Data] に指定された変数の最大バイト数が取得した文字列のサイズよりも小さい場合、オペレーションは失敗します。最大バイト数は、[Destination Data] に指定された変数のエンコーディングによって異なります。