¿Cómo convertir el nombre de la lista en una cadena?Hola,
Tengo este script que verifica si la lista tiene elementos duplicados y, si es así, envía un mensaje de error.
ColAgain=Function({main}, {duplicate},
duplicate={};
duplicate_r={};
unique={};
For (i=1,i<=Nitems(main),i++,
If (Nrows(Loc(unique,main[i])) == 0,
InsertInto (unique,main[i]),
InsertInto (duplicate_r,main[i])
);
);
For (i=1,i<=Nitems(duplicate_r),i++,
If (Nrows(Loc(duplicate,duplicate_r[i])) == 0,
InsertInto (duplicate,duplicate_r[i])
);
);
if (Nitems(duplicate)>0,
Write("ERROR. "||Char(main)||" has duplicates.");
Caption("ERROR. "||Char(main)||" has duplicates. Check log.");
For (i=1, i<=Nitems(duplicate), i++,
Show(duplicate[i]);
);
Throw();
);
duplicate;
);Note que tengo esta línea:
Caption("ERROR. "||Char(main)||" has duplicates. Check log.");Lo que quiero que aparezca es esto:
"ERROR. GroupVar has duplicates. Check log."
Sin embargo, en su lugar aparece esto:
"ERROR. {"Element1", "Element2, "ElementN"} has duplicates. Check log."¿Algunas ideas? Gracias.
Re: ¿Cómo convertir el nombre de una lista en una cadena?¡Gracias! Funciona perfectamente.Re: ¿Cómo convertir el nombre de una lista en una cadena?Hola @shaira
Supongo que desea que el nombre de la VARIABLE que se proporciona como argumento de la función se muestre en el cuadro de título. Si es así, esto puede funcionar:
ColAgain = Function( {main},
{duplicate},
duplicate = {};
duplicate_r = {};
unique = {};
For( i = 1, i <= N Items( main ), i++,
If( N Rows( Loc( unique, main[i] ) ) == 0,
Insert Into( unique, main[i] ),
Insert Into( duplicate_r, main[i] )
)
);
For( i = 1, i <= N Items( duplicate_r ), i++,
If( N Rows( Loc( duplicate, duplicate_r[i] ) ) == 0,
Insert Into( duplicate, duplicate_r[i] )
);
);
If( N Items( duplicate ) > 0,
Write( "ERROR. " || Char( main ) || " has duplicates." );
Caption( "ERROR. " || Char( nameExpr(main) ) || " has duplicates. Check log." );
For( i = 1, i <= N Items( duplicate ), i++,
Show( duplicate[i] )
);
Throw();
);
duplicate;
);
groupVar = {1,2,3,3,5};
ColAgain( expr(groupVar) );
Tenga en cuenta el uso de Name Expr() en la declaración Caption. Además, al llamar a la función, debe ajustar el argumento con la palabra clave Expr()