REPLACE

文字列の置換

REPLACE命令は、IN1で指定された文字列の文字を、IN2で指定された文字列に置換します。置換する文字数(長さ)は、Lで指定します。置換の開始位置は、Pで指定します。演算結果の文字列は、出力変数に書き込まれます。

パラメータ

入力

IN1 (STRING)

先頭の入力文字列

IN2 (STRING)

置換文字列

L (INT)

置換する入力文字列の文字数

P (INT)

置換する入力文字列の開始位置。1は文字列の1文字目になります

出力

未定義出力 (STRING)

結果文字列

解説

  • この命令をUTF-8文字列で使用する場合は、データ型STRINGのUTF-8文字列についての注意事項をご参照ください。

  • 文字列がフィールド「Type」の入力変数input_string_1input_string_2として定義された長さよりも長い場合、エラーが発生します(「モニター」 > 「特殊リレー/特殊データレジスタ」 > 「基本エラーメッセージ」をご参照ください)

エラーフラグ

sys_bIsOperationErrorHold (TRUEになり、TRUEを保持)

入力または出力に適用される文字列が無効な文字列のとき

sys_bIsOperationErrorNonHold (1回のスキャンに対してTRUE)

入力または出力に適用される文字列が無効な文字列のとき

POUヘッダ

POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。

	VAR
		output_value: STRING[32]:='';
	END_VAR

POUボディ

この例では、定数をファンクションの入力に直接記述します。POUヘッダで変数を宣言することもできます。POUヘッダ、ファンクションとも、文字列には引用符をつけてください。この例では、文字列'MrSpock'の'c'が'o'に置き換えられて、'MrSpook'となります。

LDボディ

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_VARIN,,'MrSpock',6,1,8,3,);
B(B_VARIN,,'o',6,2,8,4,);
B(B_VARIN,,1,6,3,8,5,);
B(B_VARIN,,6,6,4,8,6,);
B(B_VAROUT,,output_value,14,1,16,3,);
B(B_F,REPLACE!,Instance,8,0,14,6,,?DIN1?DIN2?DL?DP?C);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ILボディ

最終修正日: 2024-03-22このページに関するフィードバックお問い合わせ窓口