execstr
executa código Scilab em strings
Seqüência de Chamamento
execstr(instr) ierr = execstr(instr, 'errcatch' [,msg])
Parâmetros
- instr
vetor de strings, instrução Scilab a ser executada.
- ierr
inteiro, 0 ou número de erro.
- msg
string com valores
'm'
ou'n'
. O padrão é'n'
.
Descrição
Executa as instruções Scilab fornecidas pelo argumento
instr
.
Note que instr não deve fazer uso de marcas de continuação (..) |
Se o flag 'errcatch'
não estiver presente, a manipulação de erros
ocorre de maneira usual.
Se o flag 'errcatch'
for ajustado, e um erro for encontrado enquanto
são executadas as instruções definidas em instr
,
execstr
não imprime uma mensagem de erro, mas aborta a
execução das instruções instr
(no ponto onde o erro
ocorreu) e retorna com ierr
igual ao número de erro.
Neste caso a exibição da mensagem de erro é controlada pela opção
msg
:
- "m"
a mensagem é exibida e registrada.
- "n"
nenhuma mensagem de erro é exibida, mas a mensagem de erro é registrada (ver
lasterror
). Este é o padrão.
ierr = execstr(instr, 'errcatch')
pode manipular erros sintáticos.
Isto é útil para a avaliação de uma instrução obtida por uma pegunta ao
usuário.
Exemplos
execstr('a=1') // ajusta a=1. execstr('1+1') // faz nada (enquanto evstr('1+1') retorna 2) execstr(['if %t then'; ' a=1'; ' b=a+1'; 'else' ' b=0' 'end']) execstr('a=zzzzzzz','errcatch') execstr('a=zzzzzzz','errcatch','m') //erros de sintaxe 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
Ver Também
Report an issue | ||
<< exec | Funções | feval >> |