Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
execstr
exécution d'instructions Scilab contenues dans des chaînes de caractères
Séquence d'appel
execstr(instr) ierr=execstr(instr,'errcatch' [,msg])
Paramètres
- instr
vecteur de chaînes de caractères
- ierr
entier, 0 ou numéro de l'erreur
- msg
chaîne de caractères (
'm'
ou'n'
). La valeur par défaut est'n'
.
Description
Exécute les instructions Scilab données dans l'argument
instr
.
Note : les instructions ne doivent pas comporter de marques de suite (..).
Si 'errcatch' n'est pas présent dans les arguments, les erreurs sont contrôlées comme d'habitude.
Si 'errcatch' est présent dans les arguments, et qu'une erreur est
rencontrée lors de l'évaluation d'un élément de instr
,
execstr
ne produit aucun message d'erreur, mais stoppe
l'exécution des instructions stockées dans instr
(au point
où l'erreur s'est produite), et renvoie dans ierr
le numéro
de l'erreur. Dans ce cas l'affichage du message d'erreur est contrôlé par
l'option msg
:
- "m"
le message d'erreur est affiché et enregistré
- "n"
le message d'erreur n'est pas affiché mais il est enregistré (voir
lasterror
). Il s'agit du comportement par défaut.
ierr=execstr(instr,'errcatch') peut gérer les erreurs de syntaxes. Ceci peut être utile pour évaluer les instructions obtenues par une requète à l'utilisateur (interface homme-machine).
Exemples
execstr('a=1') // affecte a=1. execstr('1+1') // ne fait rien de particulier (alors que evstr('1+1') renvoie 2) execstr(['if %t then'; ' a=1'; ' b=a+1'; 'else' ' b=0' 'end']) // récupération des erreurs d'exécution execstr('a=zzzzzzz','errcatch') execstr('a=zzzzzzz','errcatch','m') // récupération des erreurs de syntaxe execstr('a=1?02','errcatch') lasterror(%t) execstr('a=[1 2 3)','errcatch') lasterror(%t) // variable1 n'existe pas if execstr('variable1;','errcatch')<>0 then disp("Declenche une erreur"),end // variable2 existe ... Pas d'erreur dans execstr variable2=[2,3]; if execstr('variable2;','errcatch')<>0 then disp("Declenche une erreur"); else disp("execstr est content"); end
<< exec | Fonctions | function >> |