22.11.9.11 ラベル設定

文字列操作エラーステータス(STR_ERR_STAT)

文字列操作を行った場合にエラーが発生した場合には、文字列操作エラーステータス[e:STR_ERR_STAT]にエラーがセットされます。[e:STR_ERR_STAT]が0の場合は正常であり、0以外の値が格納されているとエラーです。文字列操作エラーステータス[e:STR_ERR_STAT]には、最後に発生したエラーが格納されます。文字列操作エラーステータスの設定は、Dスクリプトツールボックスの「SIOポート操作/ラベル設定」で行います。文字列操作エラーには、次のようなエラーがあります。

_strset( ), _strlen( ), _strcat( ), _strmid( ), _IO_READ_WAIT( )関数に256バイト以上の文字列を直接引数に与えた。
または、_strcat ( )、_ldcopy ( )関数実行時、データバッファを超える文字列を作成した。
例)
_strcat(databuf0, databuf1)
databuf0に1020バイトの文字列、databuf1に60バイトの文字列があるときに上記関数を実行した(データバッファ0のサイズである1024バイトを超えるためエラーとなる)

_hexasc2bin( ), _decasc2bin ( ) 関数に指定外の文字コードを与えた。
例)
_hexasc2bin( )の第2 引数に0~9, A~F, a~f以外の文字コード(Gなど)をセットした

_strmid ( ) 関数で指定した文字列より長い文字列を抽出しようとした。または、指定した文字列より大きいオフセット値を指定した。
例)
_strmid (databuf0, "12345678", 2, 8)
オフセット2から8文字分抽出しようとした

各関数実行時にエラーステータスに格納されます。

[e:STR_ERR_STAT]は、メイン関数の先頭でエラーステータス確認用のチェックを記述してください。次のように記述することでエラーが確認できます。

記述例

if ([e:STR_ERR_STAT] <> 0)     // エラーステータスをチェック
{
 set ([b:[#INTERNAL]LS005000])// エラー表示用ランプのビットセット
}
endif