Publicado el :
Macro CREATION_INTERNE

Generación de nombre de archivo temporal único (AHGgettempfilename)

Este código también está disponible en: Deutsch English Français
La macro `AHGgettempfilename` itera hasta encontrar un nombre de archivo que no existe físicamente en el disco (verificación mediante la función `fileExist`). Construye el nombre utilizando un prefijo y una parte aleatoria derivada de la función `normal(0)`. El resultado se almacena dinámicamente en la variable macro cuyo nombre se pasa como parámetro.
Análisis de datos

Type : CREATION_INTERNE


No se leen datos externos. El script genera cadenas de caracteres (nombres de archivos) de manera algorítmica.

1 Bloque de código
MACRO
Explicación :
Definición de la macro. Utiliza un bucle `%do %until` acoplado a `%sysfunc(fileExist(...))` para garantizar la unicidad del archivo. La variable objetivo (pasada por referencia a través de `tempname`) se actualiza en cada iteración con un nuevo candidato que contiene una cadena aleatoria.
¡Copiado!
1%macro AHGgettempfilename(tempname,dir=%AHGtempdir,start=&tempname,ext=txt);
2 %local rdn ;
3 %DO %until (not %sysfunc(fileExist(&&&tempName)) );
4 %let rdn=%sysfunc(normal(0));
5 %let rdn=%sysfunc(translate(&rdn,00,.-));
6 %let &tempname=T_&start.._%substr(&rdn,1,5).&ext;
7 %END;
8 %put &tempname=&&&tempname;
9%mend;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.