Publié le :
Macro CREATION_INTERNE

Génération de nom de fichier temporaire unique (AHGgettempfilename)

Ce code est également disponible en : Deutsch English Español
La macro `AHGgettempfilename` boucle jusqu'à trouver un nom de fichier qui n'existe pas physiquement sur le disque (vérification via la fonction `fileExist`). Elle construit le nom en utilisant un préfixe et une partie aléatoire dérivée de la fonction `normal(0)`. Le résultat est stocké dynamiquement dans la variable macro dont le nom est passé en paramètre.
Analyse des données

Type : CREATION_INTERNE


Aucune donnée externe n'est lue. Le script génère des chaînes de caractères (noms de fichiers) de manière algorithmique.

1 Bloc de code
MACRO
Explication :
Définition de la macro. Elle utilise une boucle `%do %until` couplée à `%sysfunc(fileExist(...))` pour garantir l'unicité du fichier. La variable cible (passée par référence via `tempname`) est mise à jour à chaque itération avec un nouveau candidat contenant une chaîne aléatoire.
Copié !
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;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.