Gibt es eine Möglichkeit, Eval(Parse(Eval Insert())) beim Erstellen von Variablennamen unterwegs zu ersetzen?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Jedes Mal, wenn ich versuche, Variablen in Schleifen zu erstellen, wurden immer Eval, Parse und Eval Insert verwendet. Ein Beispiel ist unten dargestellt
For(i=0 , i < N Table(), i++,Eval(Parse(Eval Insert("Variable^i^"))));Die obige Methode funktioniert gut, aber je größer die Skripte werden, desto mehr Variablen und Operationen müssen in Anführungszeichen gesetzt werden, was das Debuggen sehr schwierig macht. Gibt es außer der Eval-, Parse- und Eval-Insert-Methode eine andere Möglichkeit, Variablen unterwegs zu erstellen?
Betreff: Gibt es eine Möglichkeit, Eval(Parse(Eval Insert())) zu ersetzen, wenn ich unterwegs Variablennamen erstelle?Die einzige Möglichkeit, wie ich eval loswerden kann (Stand jetzt), ist die Verwendung von Ians Methode, die das Debuggen etwas besser macht. Weil mir klar geworden ist, dass Fehler, die in den Dingen passieren, die ich auswerte, nicht im Protokoll auftauchen, was das Debuggen etwas schwieriger macht ...
Betreff: Gibt es eine Möglichkeit, Eval(Parse(Eval Insert())) zu ersetzen, wenn ich unterwegs Variablennamen erstelle?Ich musste einfach etwas Ähnliches tun und eine Reihe von Ausdrücken hat den Zweck erfüllt.Kein Entkommen evalu obwohl.Hier ist ein Codebeispiel, das die Dinge veranschaulicht:
tb_expr = {} ;
tb_expr [ 1 ] = Ausdruck ( hlistbox ( Textfeld ( „1:“ ) , Textfeld ( "Erster" ))) ;
tb_expr [ 2 ] = Ausdruck ( hlistbox ( Textfeld ( „2:“ ) , Textfeld ( "Das Zweite" ))) ;
tab_expr = Ausdruck (
test_tab << ersetzen ( 1 , „Registerkarte „Test““ , evalu ( tb_expr [ Index ])) ;
) ;
jetzt = neues Fenster ( "prüfen" ,
hlistbox ( Knopffeld ( "Eins" ,
Index = 1 ;
tab_expr ;
) ,
Knopffeld ( "Zwei" ,
Index = 2 ;
tab_expr ;
) ,
) ,
test_tab = Tab-Feld ( „Registerkarte „Test““ , evalu ( tb_expr [ 1 ]))
) ;
Betreff: Gibt es eine Möglichkeit, Eval(Parse(Eval Insert())) zu ersetzen, wenn ich unterwegs Variablennamen erstelle?Eine solche Liste ist mir leider nicht bekannt. Aber wenn es nicht funktioniert, werden Sie es bald merken!
Ich erinnere mich, dass (glaube ich bei JMP 10) die „SliderBox{}“ nicht abonnierbar war, also musste ich etwas mehr Arbeit leisten. Dies wurde möglicherweise nachträglich behoben.
Betreff: Gibt es eine Möglichkeit, Eval(Parse(Eval Insert())) zu ersetzen, wenn ich unterwegs Variablennamen erstelle?Hallo Ian,
Vielen Dank für den Hinweis auf die Methode zum Speichern der DisplayBoxes in einer Liste. Ich werde diese für Kombinationsfelder anstelle von Nummernbearbeitungsfeldern ausprobieren. Übrigens. Wissen Sie, wo ich eine vollständige Liste der abonnierbaren Anzeigefelder erhalten kann?
Betreff: Gibt es eine Möglichkeit, Eval(Parse(Eval Insert())) zu ersetzen, wenn ich unterwegs Variablennamen erstelle?Das könnte Ihnen einen Hinweis geben. Einige (aber, als ich das letzte Mal nachgesehen habe, nicht alle) der Anzeigefelder haben einen L-Wert, der abonnierbar ist:
NamesDefaultToHere ( 1 ) ;
// Erstellen Sie eine „dynamische“ Benutzeroberfläche. . .
N = 6 ;
lub = LineUpBox ( NCol ( 1 )) ;
nebs = {} ;
Für ( ich = 1 , ich <= N , ich ++,
Einfügen in ( nebs , NumberEditBox ( . )) ;
lub << Anhängen ( nebs [ ich ]) ;
) ;
jetzt = Neues Fenster ( „Liste der Nummernbearbeitungsfelder“ , lub , ButtonBox ( "OK" , OKscript )) ;
// Die Benutzereingabewerte abrufen, wenn auf „OK“ geklickt wird. . .
OKscript =
Ausdruck (
jetzt << Fenster schließen ;
Für ( ich = 1 , ich <= N , ich ++, Drucken ( nebs [ ich ] << erhalten ))
) ;
Betreff: Gibt es eine Möglichkeit, Eval(Parse(Eval Insert())) zu ersetzen, wenn ich unterwegs Variablennamen erstelle?Wenn Sie viele Variablen haben, würde vielleicht eine Listen- oder Matrixstruktur helfen?Oder ein assoziatives Array?
Betreff: Gibt es eine Möglichkeit, Eval(Parse(Eval Insert())) zu ersetzen, wenn ich unterwegs Variablennamen erstelle?Ein Beispiel wäre: Ich möchte unten eine gleiche Menge davon erstellen ...

für jede geöffnete Datentabelle, sodass die Anzahl der jedes Mal erstellten Kombinationsfelder oder Schaltflächenfelder von der Anzahl der geöffneten Datentabellen abhängt.
Und ich habe jedem Kombinationsfeld und jedem Schaltflächenfeld eine Variable zu Nachverfolgungszwecken zugewiesen (und sie muss vorhanden sein). Daher bleibt mir keine andere Wahl, als jedes Mal eine Variable mit „Eval“, „Parse“ und „Eval Insert“ zu erstellen, sodass ich jede von mir erstellte Combo-/Button-Box über eine Variable verfolge.
Eval( Parse( Eval Insert( " if(DTopened > 1, lbBB^i^ = Border Box( H List Box( dtListBox^i^ = Combo Box( listofdtnames ), Picture Box( img ), Combo Box( test ), BBox^i^ = Button Box( \!"Fetch Temperature\!" ) ) ); " ) ) );
Gibt es eine Möglichkeit, Eval, Parse und Eval Insert zu eliminieren und etwas Einfacheres zu verwenden?
Edit: Ich habe vergessen zu erwähnen, dass sich der Code in einer for-Schleife mit variabler „i“-Schleife befindet
Betreff: Gibt es eine Möglichkeit, Eval(Parse(Eval Insert())) zu ersetzen, wenn ich unterwegs Variablennamen erstelle?JSL unterstützt zahlreiche Designmuster, von denen einige vielleicht nicht offensichtlich sind. Könnten Sie ein konkreteres Beispiel dafür geben, wann Sie „Variablen in einer Schleife erstellen“ möchten, das auch den nächsten Schritt angibt, wie Sie solche Variablen tatsächlich verwenden möchten?