execstr
文字列中のScilabコードを実行
呼び出し手順
execstr(instr) ierr = execstr(instr, 'errcatch' [,msg])
引数
- instr
- 文字列のベクトル, 実行するScilab命令. 
- ierr
- 整数, 0 ばたはエラー番号. 
- msg
- 値 - 'm'または- 'n'を有する文字列. デフォルト値は- 'n'.
説明
引数instrで指定したScilab命令を実行します.
|  | instrの中では継続記号 (..) を使用する
            べきではないことに注意してください. | 
'errcatch'フラグが指定されない場合,
            エラー処理は通常と同様に行われます.
'errcatch'フラグが指定された場合,
            instrで定義された命令を実行す際に
            発生したエラーはエラーメッセージを発生せず,
            instr 命令の実行を
            (エラーが発生した場所で)破棄し,
            エラー番号に等しいierrを返して
            復帰します.
            この場合,エラーメッセージの出力は
            msgオプションにより次のように
            制御されます:
- "m"
- エラーメッセージは表示され,記録されます. 
- "n"
- エラーメッセージは表示されませんが, 記録されます ( lasterror参照). これがデフォルトです. 
ierr = execstr(instr, 'errcatch') は構文エラーも
            処理することができます.
            この特徴は,ユーザへの問い合わせにより得られた命令を
            評価する際に有用です.
例
execstr('a=1') // sets a=1. execstr('1+1') // does nothing (while evstr('1+1') returns 2) execstr(['if %t then'; ' a=1'; ' b=a+1'; 'else' ' b=0' 'end']) execstr('a=zzzzzzz','errcatch') execstr('a=zzzzzzz','errcatch','m') //syntax errors execstr('a=1?02','errcatch') lasterror(%t) execstr('a=[1 2 3)','errcatch') lasterror(%t) // variable1 does not exist if execstr('variable1;','errcatch')<>0 then disp("Trigger an error"); else disp("execstr is happy"); end // variable2 exists ... no error is triggered by execstr variable2=[2,3]; if execstr('variable2;','errcatch')<>0 then disp("Trigger an error"); else disp("execstr is happy"); end
| Report an issue | ||
| << exec | Functions | feval >> |