32_it-IT
Scripting: come ottenere un oggetto Nome da una stringa tra virgolette?Supponiamo di avere il nome di una variabile di tabella come stringa tra virgolette in una variabile di runtime. Come posso ottenere l'oggetto Nome variabile della tabella da quello?
Ho avuto lo stesso problema con le colonne della tabella che sono riuscito a risolvere ottenendo un elenco di nomi di colonne della tabella e scorrendoli finché non ho trovato un oggetto Nome che corrispondeva alla stringa. Sfortunatamente non sembra esserci una funzione che restituisca variabili di tabella, quindi questo metodo non funziona.
Sfondo:
Lo scopo è avere una libreria riutilizzabile in grado di incorporare formule nelle colonne. Poiché il codice di riutilizzo non conosce i nomi delle variabili della tabella o dei nomi delle colonne, devo passarli alle mie funzioni come parametri stringa. Tuttavia, se utilizzo la variabile stringa durante la creazione della formula, il risultato è una stringa tra virgolette anziché un riferimento alla variabile di colonna o di tabella.Ri: Scripting: come ottenere un oggetto Nome da una stringa tra virgolette?Puoi ottenere il valore della variabile della tabella dalla stringa con
x = Tabella dati corrente() << Ottieni variabile tabella("insegnante");
E puoi ottenere il valore di una colonna con
x = colonna("altezza")[ 1 ];
Le espressioni possono essere utilizzate per una meta-programmazione più complicata (JSL che manipola JSL), ma poiché stai iniziando con una stringa potrebbe essere meglio usare Parse() ed Eval(). Ad esempio, quanto segue accetta la stringa del nome di una funzione e la tratta come un nome di funzione.
s = "quadrato"; x = Eval( Analizza( s || "(2)" ));Oggetto: Re: Scripting: Come ottenere un oggetto Name da una stringa racchiusa tra virgolette?Parse() è il comando che mi serviva. Magari l'avessi saputo una settimana fa! 
Grazie!
MODIFICA: Ho parlato un po' troppo presto. Parse() non funziona se il nome della variabile della tabella contiene parentesi. (Ad esempio, "Larghezza (mm)") Devo pensarci ancora un po'...
Messaggio modificato da: DaveSOggetto: Re: Scripting: Come ottenere un oggetto Name da una stringa racchiusa tra virgolette?Ho trovato una soluzione che funziona:
-----------------------------Inizio script-----------------------------
Cancella le variabili globali();
Cancella registro();
MyParse = Funzione(
{sName}, {Predefinito locale},
ex = "Nome(xxx)";
nuovaStr = "\!"" || sNome || "\!"";
retVal = Munger(ex, 0, "xxx", newStr);
retVal = Parse(retVal);
);
str = "Larghezza (mm)";
nome = MyParse(str);
mostra(nome);
-----------------------------Fine dello script-----------------------------
Ovviamente questo si limita all'analisi delle stringhe che sono nomi. Grazie per l'aiuto!
Comments
There are no comments yet