Publicado el :
Macro CREACION_INTERNA

Macro de análisis de cadena anidada

Este código también está disponible en: Deutsch English Français
La macro `AHGscan2` está diseñada para extraer un elemento específico de una cadena de caracteres dada, manejando dos niveles de delimitadores. Utiliza la función `%SCAN` de SAS© de manera anidada: un primer `%SCAN` para aislar una sección de la cadena principal usando el primer delimitador (`dlm`), y luego un segundo `%SCAN` sobre esta sección para extraer un elemento preciso con el segundo delimitador (`dlm2`). Los delimitadores por defecto son la barra invertida (\) y la almohadilla (#). Esta macro es útil para analizar cadenas estructuradas complejas donde la información está separada por diferentes esquemas de delimitación dentro de segmentos.
Análisis de datos

Type : CREACION_INTERNA


La macro opera sobre una cadena de caracteres que se le pasa como parámetro (`mac`). No crea ni utiliza conjuntos de datos SAS externos o internos (SASHELP) directamente. El 'dato' procesado es la cadena de entrada proporcionada al llamar la macro.

1 Bloque de código
MACRO
Explicación :
Este bloque define la macro `AHGscan2`. Toma cuatro parámetros: `mac` (la cadena fuente), `i` (el índice del elemento a extraer en el primer nivel de scan), `j` (el índice del elemento a extraer en el segundo nivel de scan), `dlm` (el primer delimitador, por defecto `\`) y `dlm2` (el segundo delimitador, por defecto `#`). El cuerpo de la macro realiza un `%SCAN` externo usando `dlm` en la cadena `mac` en el índice `i`, y luego un `%SCAN` interno sobre el resultado con `dlm2` en el índice `j`. El resultado final es la subcadena extraída.
¡Copiado!
1%macro AHGscan2(mac,i,j,dlm=\,dlm2=#);
2%scan(%scan(&mac,&i,&dlm),&j,&dlm2)
3%mend;
4 
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.