Festlegen eines Variablennamens innerhalb einer for-SchleifeHallo,
Ich setze gerne Variablennamen wie name1, name2,... in einer for-Schleife mit der folgenden Anordnung:
name1 = ntable;
name2 ="A"||"_"||Flow[1];
name3 ="A"||"_"||Flow[2];
und so weiter.
Ich habe das folgende Skript erstellt und eine Fehlermeldung erhalten:
name1 = ntable;
for (i=1, i<=Nitems, i++,
Eval(
Parse(
"name"||char(i+1) = "A" ||"_"|| Flow[i];
)
)
);
Ich schätze Ihre Hilfe. Danke.
Betreff: Festlegen eines Variablennamens innerhalb einer for-SchleifeDanke Jeff. Ich habe Ihr letztes Skript ausprobiert und die Dateien und das Listenexcelsheet in Namen geändert und funktioniert perfekt. Nochmals vielen Dank für all Ihre Unterstützung.
Betreff: Festlegen eines Variablennamens innerhalb einer for-SchleifeWomit genau hast du zu kämpfen? Erhalten Sie eine Fehlermeldung, die Sie nicht verstehen? Ich habe oben die Schleifen gezeigt, die für Sie funktionieren.
Ich habe vorhin vorgeschlagen, dass Sie eine Liste verwenden, anstatt zu versuchen, indizierte JSL-Variablennamen zu erstellen. Ich sehe in dem Code, den Sie hier gepostet haben, nichts, was darauf hindeutet, dass eine Liste für Sie nicht funktioniert. Ich empfehle Ihnen dringend, stattdessen Listen zu verwenden.
flow = {"one", "two", "three", "four", "five"};
names = {};
files = {};
For( i = 1, i <= N Items( flow ), i++,
names[i] = "A_" || flow( i );
files[i] = Open( "$Documents/JMP/A_" || Flow[i] || ".jmp" );
Create Excel Workbook( "$Documents/JMP/" || product_name || "_" || one_stage || ".xlsx", files, listexcelsheet );
);Betreff: Festlegen eines Variablennamens innerhalb einer for-SchleifeVielen Dank, Jeff. Ich brauche noch etwas Hilfe, nachdem ich den ersten Teil bekommen habe. Hier ist das Skript, das unten gut funktioniert:
If( Nitems == 5,
name1 = ntable;
name2 = "A" || "_" || Flow[1];
name3 = "A" || "_" || Flow[2];
name4 = "A" || "_" || Flow[3];
name5 = "A" || "_" || Flow[4];
name6 = "A" || "_" || Flow[5];
name1jmp = "$Documents/JMP/" || "A" || "_" || Flow[1] || ".jmp";
name2jmp = "$Documents/JMP/" || "A" || "_" || Flow[2] || ".jmp";
name3jmp = "$Documents/JMP/" || "A" || "_" || Flow[3] || ".jmp";
name4jmp = "$Documents/JMP/" || "A" || "_" || Flow[4] || ".jmp";
name5jmp = "$Documents/JMP/" || "A" || "_" || Flow[5] || ".jmp";
file1 = Open( ntablejmp );
file2 = Open( name1jmp );
file3 = Open( name2jmp );
file4 = Open( name3jmp );
file5 = Open( name4jmp );
file6 = Open( name5jmp );
listx = Eval List( {name1, name2, name3, name4, name5, name6} );
listexcelsheet = Eval List( {name1, name2, name3, name4, name5, name6} );
Create Excel Workbook( "$Documents/JMP/" || product_name || "_" || one_stage || ".xlsx", listx, listexcelsheet );
);
Ich versuche, eine for-Schleife zu erstellen, damit sie für alle Nitems funktioniert. Ich verwende einen MAC-Rechner und deshalb habe ich es so gemacht. Vielen Dank für Ihre kontinuierliche Unterstützung.
Betreff: Festlegen eines Variablennamens innerhalb einer for-SchleifeDie Technik ist genau die gleiche. Sie erstellen eine Zeichenfolge, die Sie in einen Ausdruck analysieren und auswerten.
Eine Sache, die Sie möglicherweise verwirren könnte, ist das \!" unten. Da Ihre Zeichenfolge ein „ enthalten muss, müssen Sie es mit \! maskieren.
flow = {"two", "three", "four"};
name1 = "A_one";
For( i = 1, i <= N Items( flow ), i++,
expr_string = "name" || Char( i + 1 ) || "jmp = \!"$Documents/JMP/" || "A_" || Flow[i] || ".jmp\!"";
Show( expr_string );
Eval( Parse( expr_string ) );
);Betreff: Festlegen eines Variablennamens innerhalb einer for-SchleifeDanke Jeff. Beides funktioniert gut, aber das erste gefällt mir, da mein Code auf dieser Definition basiert. Anstelle von Name1 definiere ich auch gerne
name1jmp = „$Documents/JMP/“ || "A" || „_“ || Fluss[i] || „.jmp“ ;
Können Sie mir helfen, wie ich das zum vorherigen Skript hinzufügen kann? Danke
Betreff: Festlegen eines Variablennamens innerhalb einer for-Schleife@txnelson interpretiert Ihre Frage anders als ich.
Ich denke, Sie möchten eine Reihe von JSL-Variablen mit einer Indexnummer als Teil des Variablennamens erstellen.
Sie können dies tun, müssen jedoch den gesamten Ausdruck als Zeichenfolge erstellen, bevor Sie versuchen, ihn mit Parse() auszuführen.
So was:
flow = {"two", "three", "four"};
name1 = "A_one";
For( i = 1, i <= N Items( flow ), i++,
Eval( Parse( "name" || Char( i + 1 ) || "= \!"A_" || flow[i] || "\!";" ) )
);
Ich bin mir jedoch nicht sicher, warum Sie dies tun sollten, anstatt eine Liste oder ein assoziatives Array mit integrierter Indizierung zu verwenden.
names = {};
names[1] = "A_one";
For( i = 1, i <= N Items( flow ), i++,
names[i + 1] = "A_" || flow[i]
);
Show( names[1], names[2], names[3], names[4] );
Betreff: Festlegen eines Variablennamens innerhalb einer for-SchleifeSie verwenden nicht die richtige Syntax für das Umbenennen einer Spalte.Hier ist ein Beispiel direkt aus
Hilfe==>Skriptindex==>Spaltenskript
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
:Age << Set Name( "Time" );