Publié le :
Macro CREATION_INTERNE

Macro d'analyse de chaîne imbriquée

Ce code est également disponible en : Deutsch English Español
La macro `AHGscan2` est conçue pour extraire un élément spécifique d'une chaîne de caractères donnée, en gérant deux niveaux de délimiteurs. Elle utilise la fonction `%SCAN` de SAS© de manière imbriquée : un premier `%SCAN` pour isoler une section de la chaîne principale en utilisant le premier délimiteur (`dlm`), puis un second `%SCAN` sur cette section pour en extraire un élément précis à l'aide du second délimiteur (`dlm2`). Les délimiteurs par défaut sont la barre oblique inverse (\) et le dièse (#). Cette macro est utile pour parser des chaînes structurées complexes où les informations sont séparées par des schémas de délimitation différents à l'intérieur de segments.
Analyse des données

Type : CREATION_INTERNE


La macro opère sur une chaîne de caractères qui lui est passée en paramètre (`mac`). Elle ne crée ni n'utilise de jeux de données SAS externes ou internes (SASHELP) directement. La 'donnée' traitée est la chaîne d'entrée fournie lors de l'appel de la macro.

1 Bloc de code
MACRO
Explication :
Ce bloc définit la macro `AHGscan2`. Elle prend quatre paramètres : `mac` (la chaîne source), `i` (l'index de l'élément à extraire au premier niveau de scan), `j` (l'index de l'élément à extraire au second niveau de scan), `dlm` (le premier délimiteur, par défaut `\`) et `dlm2` (le second délimiteur, par défaut `#`). Le corps de la macro effectue un `%SCAN` externe en utilisant `dlm` sur la chaîne `mac` à l'index `i`, puis un `%SCAN` interne sur le résultat avec `dlm2` à l'index `j`. Le résultat final est la sous-chaîne extraite.
Copié !
1%macro AHGscan2(mac,i,j,dlm=\,dlm2=#);
2%scan(%scan(&mac,&i,&dlm),&j,&dlm2)
3%mend;
4 
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.