El script solo se ejecuta una vez en un bucleHola,
La siguiente secuencia de comandos recorre los archivos en dos listas para verificar cuál de ellos coincide. Si lo hacen, la función 'etiquetador' se utiliza para manipular los archivos. Creé este código para una GUI en la cual probar su funcionalidad elegí cuatro archivos (dos para lf y dos para lg). El problema es que cuando la condición se evalúa como verdadera, el script 'etiquetador' solo se ejecuta para el primero de los dos archivos coincidentes, en lugar de los cuatro archivos coincidentes. Me preguntaba si me estaba perdiendo algo?
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: Script solo se ejecuta una vez en un bucleSu código funcionó para mí (probé JMP 13 y JMP 14) después de agregar los siguientes datos de prueba:
tagger = function({a, b}, print("tagging", a, b));
lf = {"abc1234", "xyz"};
lg = {"abc12345678", "xyz12345678"};
selectedDirlf = "/LF/";
selectedDirlg = "/LG/";
commenceTaggingScript2;
Es decir, vi al etiquetador llamado 2 veces de las 4 comparaciones:
"Lonchas Lf: abc"
"Rodajas de lg: abc"
"etiquetado"
"/ LF / abc1234"
"/ LG / abc12345678"
"No coincide"
"No coincide"
"Rodajas Lf: xyz"
"Rodajas de lg: xyz"
"etiquetado"
"/ LF / xyz"
"/ LG / xyz12345678"