Publié le :
Macro CREATION_INTERNE

Recherche du second délimiteur dans une chaîne

Ce code est également disponible en : Deutsch English Español
La macro `AHGindex2` prend deux arguments : `str` (la chaîne à analyser) et `dlm` (le délimiteur à rechercher). Elle initialise une variable `result` à 0 et parcourt la chaîne caractère par caractère. Elle utilise les variables locales `one` pour marquer la première occurrence du délimiteur et `result` pour stocker l'index de la seconde occurrence. La macro retourne l'index de la seconde occurrence du délimiteur. Si le second délimiteur n'est pas trouvé ou s'il n'y a qu'une seule occurrence, elle retourne 0.
Analyse des données

Type : CREATION_INTERNE


Les données sont fournies directement via les paramètres de la macro (`str` et `dlm`). Aucune lecture de fichier externe ou de librairie SAS n'est effectuée.

1 Bloc de code
MACRO DEFINITION
Explication :
Ce bloc définit la macro `AHGindex2`. Elle utilise une boucle `%do` pour itérer sur la chaîne `str`. La fonction `%qsubstr` est utilisée pour extraire un caractère à la fois. La logique identifie la première occurrence du délimiteur à l'aide de la variable `one` et, une fois trouvée, cherche la seconde occurrence en stockant son index dans `result`.
Copié !
1%macro AHGindex2(str,dlm);
2%local i one RESULT;
3%let RESULT=0;
4%DO i=1 %to %LENGTH(&str);
5%IF %qsubstr(&str,&i,1) = &dlm and (&RESULT=0) and (&one=1) %THEN %let RESULT=&i;
6%IF %qsubstr(&str,&i,1) eq &dlm %THEN %let one=1;
7%END;
8&RESULT
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.