Publié le :
Macro CREATION_INTERNE

Conversion de guillemets doubles et virgules dans une chaîne

Ce code est également disponible en : Deutsch English Español
Cette macro utilitaire, conçue comme une fonction, a pour but de 'nettoyer' une chaîne de caractères. Elle est particulièrement utile pour préparer des chaînes à être passées en paramètre dans des contextes où la syntaxe est stricte, comme lors de la soumission de code à distance (`rsubmit`). La macro accepte un seul paramètre positionnel qui contient la chaîne à traiter. Elle effectue deux opérations : d'abord, elle remplace toutes les virgules par des espaces en utilisant `%sysfunc(translate)`. Ensuite, elle suppose que la chaîne est entourée de guillemets, les retire avec `%qsubstr`, et passe le résultat à une macro externe `%dq2sq` qui est supposée gérer la conversion des guillemets doubles en guillemets simples. La macro a donc une dépendance sur la macro `%dq2sq` qui n'est pas définie dans ce code.
Analyse des données

Type : CREATION_INTERNE


La macro n'opère sur aucune table de données. L'entrée est une chaîne de caractères fournie en paramètre au moment de l'appel.

1 Bloc de code
Macro
Explication :
Le bloc définit la macro `%dq2sqnc`. Un message est d'abord écrit dans le log via `%PUT`. La macro utilise l'option `parmbuff` pour capturer tous les paramètres de manière positionnelle. Elle utilise ensuite la fonction `%SYSFUNC` pour appeler la fonction SAS `TRANSLATE` afin de remplacer les virgules (`,`) par des espaces (` `). La fonction `%QSUBSTR` est utilisée pour retirer le premier et le dernier caractère de la chaîne (supposés être des guillemets). Le résultat est alors passé en paramètre à une autre macro, `%dq2sq`, pour un traitement ultérieur.
Copié !
1%put MACRO CALLED: dq2sqnc v1.0;
2 
3%macro dq2sqnc/parmbuff;
4%dq2sq(%qsubstr(%sysfunc(translate(&syspbuff,%str( ),%str(,))),2,%LENGTH(&syspbuff)-2))
5%mend dq2sqnc;
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.
Informations de Copyright : This is public domain software. No guarantee as to suitability or accuracy is given or implied. User uses this code entirely at their own risk.