32_de-DE
Scripting: Wie erhalte ich ein Name-Objekt aus einer Zeichenfolge in Anführungszeichen?Angenommen, ich habe den Namen einer Tabellenvariablen als Zeichenfolge in Anführungszeichen in einer Laufzeitvariablen. Wie erhalte ich daraus das Tabellenvariablen-Namensobjekt?
Ich hatte das gleiche Problem mit Tabellenspalten, das ich umgehen konnte, indem ich eine Liste der Tabellenspaltennamen abgerufen und diese durchlaufen habe, bis ich ein Namensobjekt gefunden habe, das mit der Zeichenfolge übereinstimmte. Leider scheint es keine Funktion zu geben, die Tabellenvariablen zurückgibt, sodass diese Methode nicht funktioniert.
Hintergrund:
Der Zweck besteht darin, eine wiederverwendbare Bibliothek zu haben, die Formeln in Spalten einbetten kann. Da der Wiederverwendungscode die Tabellenvariablennamen oder Spaltennamen nicht kennt, muss ich sie als Zeichenfolgenparameter an meine Funktionen übergeben. Wenn ich jedoch beim Erstellen der Formel die Zeichenfolgenvariable verwende, ist das Ergebnis eine Zeichenfolge in Anführungszeichen anstelle eines Verweises auf die Spalten- oder Tabellenvariable.Betreff: Skripterstellung: Wie erhalte ich ein Namensobjekt aus einer Zeichenfolge in Anführungszeichen?Sie können den Wert der Tabellenvariablen aus der Zeichenfolge mit abrufen
x = Current Data Table() << Get Table Variable( "teacher" );
Und Sie können den Wert einer Spalte mit erhalten
x = Spalte("Höhe")[ 1 ];
Ausdrücke können für kompliziertere Metaprogrammierung (JSL, das JSL manipuliert) verwendet werden, aber da Sie mit einer Zeichenfolge beginnen, ist es möglicherweise besser, Parse() und Eval() zu verwenden. Im Folgenden wird beispielsweise eine Funktionsnamenzeichenfolge verwendet und als Funktionsname behandelt.
s = "sqrt"; x = Eval( Parse( s || "(2)" ));Betreff: Skripterstellung: Wie erhalte ich ein Name-Objekt aus einer Zeichenkette in Anführungszeichen?Parse() ist genau der Befehl, den ich brauchte. Hätte ich den doch nur schon vor einer Woche gekannt! 
Danke!
NACHTRAG: Ich habe mich etwas zu früh gefreut. `Parse()` funktioniert nicht, wenn der Name der Tabellenvariable Klammern enthält (z. B. „Breite (mm)“). Ich muss darüber noch einmal nachdenken.
Nachricht bearbeitet von: DaveSBetreff: Skripterstellung: Wie erhalte ich ein Name-Objekt aus einer Zeichenkette in Anführungszeichen?Ich habe etwas herausgefunden, das funktioniert:
-----------------------------Skriptstart-----------------------------
Clear Globals();
Clear Log();
MyParse = Funktion(
{sName}, {Standardlokal},
ex = "Name(xxx)";
newStr = "\!"" || sName || "\!"";
retVal = Munger(ex, 0, "xxx", newStr);
retVal = Parse(retVal);
);
str = "Breite (mm)";
name = MyParse(str);
show(name);
-----------------------------Skriptende-------------------------
Offensichtlich beschränkt sich dies auf das Parsen von Zeichenketten, die Namen darstellen. Danke für die Hilfe!
Comments
There are no comments yet