¿Cómo se pueden usar variables globales con scripts cifrados?Usando un script encriptado en Jmp13, me gustaría leer una variable global asignada previamente.
Ejemplo:
Con un script estándar asigna ...
a=0;
b=10;
Utilizando un script cifrado
if (IsEmpty(a)==1,a=5); // DO NOTHING IF ITS NOT EMPTY
if (IsEmpty(b)==1,b=50); // DO NOTHING IF ITS NOT EMPTY
Write(a);
Write(b);
Objetivo: si la variable global no está definida, asignarla en el script cifrado. Si la variable global está definida, use la definición.
Funciona sin cifrado. Además, después de ejecutar el script encriptado, puedo ver los globales predeterminados asignados.
Entonces, ¿es posible usar una variable global con un script encriptado?
Gracias por la ayuda.
Re: ¿Cómo se pueden usar variables globales con scripts cifrados?Bien tu y @Craige_Hales es correcto que al desmarcar la opción "Usar el espacio de nombres aquí ..." en el generador de complementos resolverá su problema específico.
Sin embargo, estoy seguro de que @Craige_Hales estaría de acuerdo conmigo en que la mejor práctica de programación / secuencias de comandos consiste en definir correctamente todas las variables a medida que se hace referencia a ellas.
La opción "Usar el espacio de nombres aquí ..." está activada de manera predeterminada para proteger el espacio de nombres global de daños accidentales.
Re: ¿Cómo se pueden usar variables globales con scripts cifrados?Jeff, gracias por la confirmación. Sí estoy de acuerdo. Es un problema de alcance. Sin embargo, la solución es desmarcar esa casilla en el complemento. Esto permite que el script externo establezca un global, y el complemento interno para usarlo. Desearía haber encontrado eso en una de las guías. Oh bien.Re: ¿Cómo se pueden usar variables globales con scripts cifrados?Creo que esto te acercará a la respuesta; Parece que el valor predeterminado es usar el espacio de nombres Aquí en un complemento, por lo que es posible que necesite usar global: a en lugar de a
checked by defaultrevisado por defecto
Re: ¿Cómo se pueden usar variables globales con scripts cifrados?RESPUESTA ==> Deshacer clic en "Usar el espacio de nombres" Aquí "para nombres de variables JSL no calificados
Funciona para secuencias de comandos de complemento estándar y para secuencias de comandos cifradas.
Un select: Use the "Here" namespaceUn select: Use el espacio de nombres "Here"
Re: ¿Cómo se pueden usar variables globales con scripts cifrados?Creo que este es un problema de alcance y espacios de nombres, y el hecho de que el menú de complementos usa Nombres predeterminados aquí (1) .
Si está tratando de hacer referencia a variables, siempre debe usar un operador de alcance para hacer referencia a ellos. El operador de alcance para las variables globales es ::.
names default to here(1);
::a=0;
a=45;
if(::a==0, show("yes"));
if(here:a == 45, show("yes"));Re: ¿Cómo se pueden usar variables globales con scripts cifrados?Aclaración adicional: el problema no es con el cifrado, sino con el complemento. Usar el jsl directamente en el complemento causa el mismo problema. Las variables globales no son vistas por el complementoRe: ¿Cómo se pueden usar variables globales con scripts cifrados?Aclaración. El problema radica en el uso de la secuencia de comandos cifrada en un complemento.
Acabo de confirmar que funciona con el cifrado como un script independiente.
Entonces, ¿el complemento opera en un espacio variable diferente? Extraño, ya que puedo ver otras variables de scripts encriptados en este complemento
Disculpas por no depurar esto completamente.