Come puoi utilizzare le variabili globali con gli script crittografatiUtilizzando uno script crittografato in Jmp13, vorrei leggere una variabile globale preassegnata.
Esempio:
Con un'assegnazione di script standard...
a=0;
b=10;
Utilizzo di uno script crittografato
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);
Obiettivo: se la variabile globale non è definita, assegnala nello script crittografato.Se la variabile globale è definita, utilizzare la definizione.
Funziona senza crittografia.Inoltre, dopo aver eseguito lo script crittografato, posso vedere i globali predefiniti assegnati.
Quindi, è possibile utilizzare una variabile globale con uno script crittografato?
Grazie per l'aiuto.
Ri: Come puoi utilizzare le variabili globali con gli script crittografatiBene, tu e @Craige_Hales hai ragione che deselezionando l'opzione "Usa lo spazio dei nomi qui..." nel generatore di componenti aggiuntivi risolverai il tuo problema specifico.
Tuttavia, ne sono sicuro @Craige_Hales sarebbe d'accordo con me sul fatto che la migliore pratica di programmazione/scripting è quella di definire correttamente l'ambito di tutte le variabili mentre le fai riferimento.
L'opzione "Usa lo spazio dei nomi qui..." è attiva per impostazione predefinita per proteggere lo spazio dei nomi globale da danneggiamenti accidentali.
Ri: Come puoi utilizzare le variabili globali con gli script crittografatiJeff, grazie per la conferma. Si, sono d'accordo. È un problema di scoping. Tuttavia, la soluzione è deselezionare quella casella nel componente aggiuntivo. Ciò consente allo script esterno di impostare un globale e al componente aggiuntivo interno di utilizzarlo. Vorrei poterlo trovare in una delle guide. Vabbè.Ri: Come puoi utilizzare le variabili globali con gli script crittografatiPenso che questo ti avvicinerà alla risposta; sembra che l'impostazione predefinita sia utilizzare lo spazio dei nomi Here in un componente aggiuntivo, quindi potrebbe essere necessario utilizzare global:a anziché a
checked by defaultchecked by defaultselezionato per impostazione predefinita
Ri: Come puoi utilizzare le variabili globali con gli script crittografatiRISPOSTA ==> Deselezionare lo spazio dei nomi "Usa lo spazio dei nomi "Qui" per i nomi delle variabili JSL non qualificati
Funziona per lo script aggiuntivo standard e per gli script crittografati.
Un select: Use the "Here" namespaceUn select: Use the "Here" namespaceDeseleziona: utilizza lo spazio dei nomi "Qui".
Ri: Come puoi utilizzare le variabili globali con gli script crittografatiCredo che questo sia un problema di ambito e spazi dei nomi e il fatto che il menu del componente aggiuntivo utilizzi I nomi predefiniti sono qui(1) .
Se stai cercando di fare riferimento a variabili, dovresti sempre usare a operatore di scoping per farvi riferimento. L'operatore di ambito per le variabili globali è ::.
names default to here(1);
::a=0;
a=45;
if(::a==0, show("yes"));
if(here:a == 45, show("yes"));Ri: Come puoi utilizzare le variabili globali con gli script crittografatiUlteriore chiarimento: il problema non riguarda la crittografia, ma il componente aggiuntivo. L'utilizzo di jsl direttamente nel componente aggiuntivo causa lo stesso problema. Le variabili globali non vengono visualizzate dal componente aggiuntivoRi: Come puoi utilizzare le variabili globali con gli script crittografatiUna precisazione. Il problema risiede nell'utilizzo dello script crittografato in un componente aggiuntivo.
Ho appena confermato che funziona con la crittografia come script autonomo.
Quindi il componente aggiuntivo opera su uno spazio variabile diverso? Strano, come posso vedere altre variabili da script crittografati in questo componente aggiuntivo
Ci scusiamo per non aver eseguito il debug completamente.