Cette macro, nommée AHGits, prend une chaîne de caractères en entrée où chaque paire de caractères représente un code hexadécimal (par exemple, '41' pour 'A'). Elle itère sur cette chaîne, extrait chaque paire hexadécimale, la convertit en sa valeur décimale correspondante puis en son caractère ASCII en utilisant la fonction `SYSFUNC(BYTE())`, et concatène ces caractères pour former la chaîne de sortie finale. Elle est utile pour décoder des chaînes encodées en hexadécimal.
Analyse des données
Type : CREATION_INTERNE
La macro opère directement sur la chaîne de caractères qui lui est passée en paramètre (`str`), sans dépendre de sources de données externes ou internes (comme SASHELP ou des tables préexistantes).
1 Bloc de code
MACRO
Explication : Ce bloc définit la macro `AHGits`. Il initialise des variables locales pour la boucle et la construction de la chaîne de sortie. La variable `n` calcule le nombre de paires hexadécimales dans la chaîne d'entrée. Une boucle `%do` itère sur chaque paire. `%substr(&str,&from,2)` extrait deux caractères (représentant une valeur hexadécimale). La fonction `SYSFUNC(BYTE())` convertit cette valeur hexadécimale en son caractère ASCII correspondant. Ce caractère est ensuite concaténé à la variable `outstr` qui accumule le résultat. La macro renvoie finalement la chaîne `outstr` décodée.
Copié !
%macro AHGits(str);
%local i n outstr from char;
%let n=%eval(%length(&str)/2);
%do i=1 %to &n;
%let from=%eval(&i*2-1);
%let outstr=&outstr%sysfunc(byte(%substr(&str,&from,2)));
%end;
&outstr
%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.
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.