Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
5.3.0 - Português

Change language to:
English - Français - 日本語 -

Please note that the recommended version of Scilab is 2024.0.0. This page might be outdated.
See the recommended documentation of this function

Manual Scilab >> Funções > execstr

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)

Ver Também

<< exec Funções fun2string >>

Copyright (c) 2022-2023 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Wed Jan 26 16:24:43 CET 2011