Skript wird nur einmal in einer Schleife ausgeführtHallo,
Das folgende Skript durchläuft Dateien in zwei Listen, um zu prüfen, welche von ihnen übereinstimmen. Wenn dies der Fall ist, wird die Funktion "Tagger" verwendet, um die Dateien zu bearbeiten. Ich habe diesen Code für eine GUI erstellt, in der ich zum Testen der Funktionalität vier Dateien auswählte (zwei für lf und zwei für lg). Das Problem ist, dass, wenn die Bedingung als wahr bewertet wird, das Skript 'Tagger' nur für die erste der beiden übereinstimmenden Dateien statt für alle vier übereinstimmenden Dateien ausgeführt wird. Frage mich, ob ich etwas vermisst habe?
commenceTaggingScript2 = Expr(
For(p = 1, p <= n items(lf), p++,
For(q = 1, q <= nitems(lg), q++,
if (Left(lf[p], Length(lf[p]) - 4) == Left(lg[q], Length(lg[q]) - 8), print("Sliced Lf: " || Left(lf[p], Length(lf[p]) - 4)); print("Sliced lg: " || Left(lg[q], Length(lg[q]) - 8)); tagger(selectedDirlf || lf[p], selectedDirlg || lg[q]) , print("Not matching"));
);
);
);
Re: Skript wird nur einmal in einer Schleife ausgeführtIhr Code hat für mich funktioniert (versucht, JMP 13 und JMP 14), nachdem Sie die folgenden Testdaten hinzugefügt haben:
tagger = function({a, b}, print("tagging", a, b));
lf = {"abc1234", "xyz"};
lg = {"abc12345678", "xyz12345678"};
selectedDirlf = "/LF/";
selectedDirlg = "/LG/";
commenceTaggingScript2;
Das heißt, ich habe gesehen, dass der Tagger zweimal aus den 4 Vergleichen aufgerufen wurde:
"Geschnittenes Lf: abc"
"In Scheiben geschnittenes lg: abc"
"tagging"
"/ LF / abc1234"
"/ LG / abc12345678"
"Nicht passend"
"Nicht passend"
"Geschnittenes Lf: xyz"
"Geschnittenes lg: xyz"
"tagging"
"/ LF / xyz"
"/ LG / xyz12345678"