La macro `%mf_getquotedstr` prend une chaîne de caractères en entrée (`IN_STR`) et la transforme en une nouvelle chaîne où chaque élément est entouré de guillemets (simples, doubles ou aucun) et séparé par un délimiteur spécifié. Les paramètres incluent:
`IN_STR`: La chaîne d'entrée non guillemetée, délimitée par des espaces (par défaut).
`DLM`: Le délimiteur à appliquer à la chaîne de sortie (virgule par défaut).
`QUOTE`: Le type de guillemets à appliquer (S pour simple, D pour double, N pour aucun). Toute autre valeur sera utilisée comme caractère de guillemet.
`indlm`: Le délimiteur utilisé dans la chaîne d'entrée (espace par défaut).
Le processus consiste à parcourir chaque 'mot' de la chaîne d'entrée, à appliquer les guillemets spécifiés, à supprimer les espaces superflus autour de chaque mot (`%qtrim`), puis à assembler la nouvelle chaîne avec le délimiteur de sortie. Si la chaîne d'entrée est vide, elle retourne deux guillemets vides (selon le type spécifié).
Analyse des données
Type : AUCUNE
La macro opère exclusivement sur des chaînes de caractères fournies en paramètres. Elle n'accède ni ne crée de datasets SAS, ni ne dépend de données externes (fichiers, tables).
1 Bloc de code
MACRO
Explication : Ce bloc définit la macro `%mf_getquotedstr` qui traite une chaîne d'entrée. Elle commence par déterminer le caractère de guillemet à utiliser, en convertissant 'S' en guillemet simple (`byte(39)`) et 'D' en guillemet double (`byte(34)`) via `%qsysfunc`. Elle initialise une variable locale `i` pour parcourir la chaîne d'entrée `IN_STR` en utilisant une boucle `%do %while` et la fonction `%qscan` pour extraire chaque élément selon le délimiteur d'entrée `indlm`. Chaque élément est ensuite guillemeté et nettoyé des espaces excédentaires avec `%qtrim`. Le premier élément initialise le `buffer`, les suivants sont ajoutés avec le `DLM` spécifié. Enfin, `%sysfunc(coalescec())` est utilisé pour gérer le cas où la chaîne d'entrée est vide, en retournant deux guillemets. Le résultat final est la chaîne `&buffer`.
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.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.