Publié le :
Macro CREATION_INTERNE

Macro _HEAD pour manipulation de liste

Ce code est également disponible en : Deutsch English Español
La macro `_HEAD` est conçue pour traiter une chaîne de caractères considérée comme une liste d'éléments. Elle prend deux paramètres : `arg1` qui est la liste à traiter, et `split=` qui est le caractère délimiteur des éléments (un espace par défaut). Elle utilise une macro externe `%_count` (non fournie dans ce script) pour déterminer la taille de la liste, puis reconstruit une nouvelle chaîne contenant tous les éléments de la liste originale sauf le dernier, en les séparant avec le délimiteur spécifié. Cette macro est utile pour des opérations de sous-sélection ou de transformation de listes d'éléments textuels.
Analyse des données

Type : CREATION_INTERNE


La macro ne consomme pas de données de fichiers externes ni de bibliothèques SASHELP. Elle opère uniquement sur des chaînes de caractères passées en argument, traitant ces arguments comme des données internes à la macro pour des opérations de manipulation de texte.

1 Bloc de code
MACRO DEFINITION
Explication :
Ce bloc définit la macro `%_head`. Elle déclare trois variables locales (`i`, `j`, `k`) pour sa logique interne. Elle utilise la macro `%_count` pour déterminer le nombre total d'éléments (`j`) dans la liste `arg1` en utilisant le délimiteur `split`. Une boucle `%do` parcourt les éléments de 1 jusqu'à l'avant-dernier (`j-2`), accumulant chaque élément ainsi que le délimiteur dans la variable `k`. Finalement, elle ajoute l'avant-dernier élément de la liste originale à `k` sans délimiteur de fin, résultant en une chaîne de tous les éléments sauf le dernier.
Copié !
1%macro _head(arg1, split=%str( ));
2 %local i j k;
3 %let j=%_count(&arg1, split=&split);
4 
5 %DO i=1 %to &j-2;
6 %let k=&k%scan(&arg1, &i, &split)&split;
7 %END;
8 
9 &k%scan(&arg1, &j-1, &split)
10%mend _head;
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 : Copyright (c) 2001-2004 Rodney Sparapani. Distribué sous les termes de la GNU General Public License, version 2 ou ultérieure.