Le 02/03/2016 12:24, David Chèze a écrit :
Hi all,

I would like to define a variable in a user module in such a way that this
constant would be available for all functions (also out of the module) as a
"hidden(you don't need to see it inbrowsvar), protected (should not be
possible to clear it, even with clearglobal )" global variable as soon the
module is loaded: do you have suggestions how to do it within scilab?

There is still no actual solution to protect variables against clear.
But you may do the following:

// Save that in set_constantes.sci and build a library with it, thanks to genlib(), say constantes_lib
function  set_constantes()
L0 = ""; L0 = who("local") c0 = 299792458
    avog  =  6.022045e23
    planck  =  6.626176e-34
    qproton  =  1.6022e-19
    L0  =  setdiff(who("local"),  L0)
    execstr("["+strcat(L0,",")+"] = resume("+strcat(L0,",")+")")
endfunction

// In your scilab.ini/.scilab :
load(path_to_set_constantes_sci+"/lib")

// Where you need constantes:
set_constantes()

// Then use the constantes defined in set_constantes()

The main advantage with this is that you don't need to remember where set_constantes.sci is stored (to exec() it). But nothing is protected: neither the library, nor set_constantes(), nor the constantes it defines.

--> clear avog
--> set_constantes()
--> avog
 avog  =
   6.022D+23

HTH
Samuel

_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users

Reply via email to