Re: ¿Cómo llamar a scripts y funciones desde dentro de una carpeta?Hola Neo,
¿Funcionará la función de incluir para usted? Prueba esto
Include("$SAMPLE_SCRIPTS/estimatingPi.jsl");
Hay argumentos adicionales. >>Parse Only analizará pero no ejecutará el script, >>Names Default to Here ejecuta el script en su propio espacio de nombres.
Re: ¿Cómo llamar a scripts y funciones desde dentro de una carpeta?Es posible que desee considerar la posibilidad de cifrar los archivos JSL que no desea que se modifiquen.Si están encriptados, JMP ni siquiera los mostrará en el registro, manteniéndolos así seguros.
Re: ¿Cómo llamar a scripts y funciones desde dentro de una carpeta?@Jason_Wiggins Gracias. El problema que veo aquí es cuando comparto la carpeta principal (por ejemplo, comprimida por correo electrónico), dependiendo de dónde coloque el usuario la carpeta principal descomprimida (que contiene el script principal y los otros scripts dentro de la carpeta myScripts), la ruta a la carpeta principal cambia que significa que no puedo codificar la ruta a la carpeta myScripts en mi script principal. ¿Me estoy perdiendo de algo?
Re: ¿Cómo llamar a scripts y funciones desde dentro de una carpeta?@txnelson La opción de cifrado suena bien. ¿Podría tener (/señale) un ejemplo con una secuencia de comandos principal y otras dos secuencias de comandos a las que llama la secuencia de comandos principal (con estas otras dos secuencias de comandos encriptadas)?
Re: ¿Cómo llamar a scripts y funciones desde dentro de una carpeta?@Neo ¿Espera que el usuario con el que comparte sus scripts los ejecute o son solo para referencia? Si principalmente ejecutan el script, ¿ha considerado compilar los scripts en un complemento ? Los archivos de complementos se almacenan en una carpeta de complementos que es consistente de usuario a usuario, por ejemplo Ventanas: C:\Usuarios\\AppData\Roaming\SAS\JMP\Addins\*.* .JMP reconoce el directorio del complemento independientemente de quién sea el usuario. Incluir () funciona en complementos y puede agregar archivos adicionales que usa su secuencia de comandos, por ejemplo, imágenes.Los scripts y archivos adicionales están disponibles para el usuario si desea reutilizar o revisar el código. Hay maneras de encriptar si no desea que el usuario tenga acceso al código como @txnelson sugirió.
Re: ¿Cómo llamar a scripts y funciones desde dentro de una carpeta?- Lea la documentación sobre el cifrado de secuencias de comandos en la Guía de secuencias de comandos
- Aquí hay un ejemplo.Tenga en cuenta que la parte superior del script guarda un par de scripts ya cifrados.Solo la parte inferior del script es lo que usaría para acceder a los scripts cifrados guardados.
names default to here(1);
// Create some saved encrypted scripts
// Below is an encrypted script that simply does a
// oneway()Oneway( Y( :height ), X( :sex ) )
encrypt =
"//-e12.1
0,
200,4182eJwNy9kBwiAMANB9XIFwlENKE0KhoMD+g+j7f6z01jbXDE3LJBaeCTjQ15Own9a6fQoXi7LcDp5qFrvE96Rneht6PKMy28XR
/336IaXjqrRfBlcsB4SazIgNtDSCujmYUsRq8Jozgmp7HOwaXej6mXfdiMLfaTM2yic22QMpD47KhMnfakSI75AsitcPuvg0Sg==
,0,";
// Save to a file
save text file("$TEMP/encript1.jsl",encrypt);
// Here is a second encrypted script that is simply
// Distribution( Continuous Distribution( Column( :height ) ) )
anotherEncrypt =
"//-e12.1
0,
224,4214eJwFwQkCwxAQAMD/9Auom+gu60zE/x/SGb5FBzdI3uv2eXW1FZf8JPN43VlFM1r2w+WbNuXU7A9M/X31V4EM5X6nEQJh8xPK
s6yuLeuWmcVN5KeK79TxUImohaaoWzK8cxUaVD9qZymQZFmNY+sp4k7UVwDGCcxeWyuG7rhTdnmy4o+WieaFBBXxIuQGprua2/mF
gakEBpHZN/sI7PMHIYc+CQ==
,0,";
// Save to a file
save text file("$TEMP/encript2.jsl",anotherEncrypt);
// Wait 10 seconds
wait(10);
// Here is the script that runs the 2 saved encrypted scripts
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
include("$TEMP/encript1.jsl");
include("$TEMP/encript2.jsl");¿Cómo llamar a scripts y funciones desde dentro de una carpeta?Tengo varios scripts y funciones a los que llama mi script JSL principal. Todos funcionan y están en una sola carpeta.
Quiero mantener todos los scripts y funciones dentro de un carpeta para tener una capa de protección contra modificaciones no deseadas y solo tener el script principal afuera. El script principal llamará a las funciones y archivos de este ejemplo carpeta "misScripts" . ¿Cómo implementar esto en JSL? ¿Podría darme un ejemplo?
Automatización y secuencias de comandos