Analysieren Sie den äußersten in Anführungszeichen gesetzten StringIch schreibe ein Skript, das ein zusätzliches Skript für die Datentabelle als „Neues Skript“ erstellt. Ich habe jedoch ein Problem beim Parsen der Zeichenfolge, die ich als Code eingerichtet habe, der in das neue Skript eingefügt werden soll.
Das Problem ist, dass wenn ich „dt << New Script("Script", parse(a));" ausführe, es beim Parsen der Zeichenfolge davon ausgeht, dass das Anführungszeichen vor dem Graph Builder das erste Anführungszeichen ist, und dieses Anführungszeichen dann am Anfang des Abschnitts „Graph Title“ beendet und beendet wird. Ich muss in der Lage sein, in das Skript, das mein Skript in die Datentabelle schreibt, viele Anführungszeichen zu schreiben, ohne dass sie geparst werden, wenn ich sie in das Skript einfüge.
Der Code sieht ungefähr so aus:
a = "Parse(Eval(Eval Insert(
"Graph Builder(
...
Dispatch(
... ,"Graph Title",
),
....
)"
)));
MassenanpassungBetreff: Äußerste Zeichenfolge in Anführungszeichen analysierenHallo @Martin .
Dies ist ein Beispiel mit Big Class und Substitute
a) um TempY durch die Variable zu ersetzen
b) um den Code in die NewScript-Funktion zu bekommen.
Der TempY in „Elemente“ hat durch „Y“ ersetzt werden, sodass Sie dort direkt „Y“ einfügen können.
Wollten Sie „Y“ in den Variablen ändern?
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
TempY=Expr(Y);
myCode= Substitute(Expr(
Graph Builder(
Size( 1500, 400 ),
Show Control Panel( 0 ),
Show Title( 0 ),
Variables(
X( :age ),
Y( :height /*change this one*/ )
),
Elements( Points( X, TempY, Legend( 6 ) ) )
)),
Expr(TempY),Name Expr(TempY));
Eval(Substitute(Expr(dt << New Script("Script", __script__)),Expr(__script__),Name Expr(myCode)))
Betreff: Äußerste Zeichenfolge in Anführungszeichen analysierenIch stimme zu, dass Sie lernen sollten, Ausdrücke zu verwenden, aber Sie müssen auch lernen, wie man mit Zeichenfolgen arbeitet. Verwenden Sie die Escape-Sequenz \!", um ein doppeltes Anführungszeichen innerhalb einer Zeichenfolge einzugeben. Andernfalls wird das Anführungszeichen, wie Sie festgestellt haben, als Zeichenfolgentrennzeichen interpretiert.
Betreff: Äußerste Zeichenfolge in Anführungszeichen analysierenDies ist genau das Skript, das ich in ein neues Tabellenskript einfügen muss:
Eval(
Parse(
eval Insert(
"\[Graph Builder(
Size( 1500, 400 ),
Show Control Panel( 0 ),
Show Title( 0 ),
Variables(
X( :TIME ),
Y( :Y )
),
Elements( Points( X, ^TempY^, Legend( 6 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "My New Title" ),
Image Export Display( Normal )}
),
Dispatch(
{},
"TIME",
ScaleBox,
{Format( "Format Pattern", "<M><-><D><-><YY> <ZHH><AMPM>" ),
Min( 3717386000 ), Max( 3717507800 ), Interval( "Hour" ), Inc( 4 ),
Minor Ticks( 0 ), Label Row( Label Orientation( "Vertical" ) )}
),
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( "Graph Title" )}
),
Dispatch(
{},
"Y title",
TextEditBox,
{Set Text( "Thing of Interest" )}
)
)
)]\"
)
)
);</AMPM></ZHH></YY></D></M>Der Grund für das „Eval(Parse(Eval Insert(“) liegt darin, dass es im Skript „TempY“ eine Variable gibt, die der Name einer anderen Tabellenvariablen ist, die über ein Optionsfeld in einem Eingabefenster geändert wird.
Betreff: Äußerste Zeichenfolge in Anführungszeichen analysierenSie müssen sich wahrscheinlich expr() ansehen und into() einfügen oder into() ersetzen, um Ihr neues Tabellenskript zu erstellen. Wenn Sie Ihr Skript erweitern, um zu zeigen, was Sie haben, können wir Ihnen möglicherweise detaillierter helfen.