Publicado el :
Macro CREATION_INTERNE

Macro de prueba de ruta

Este código también está disponible en: Deutsch English Français
Esta macro, llamada 'testit', está diseñada para ilustrar el comportamiento de la función %SYSFUNC(DEQUOTE) al procesar parámetros de macro que pueden contener comillas. Utiliza un paso DATA _NULL_ para mostrar el valor del parámetro 'path' en el registro SAS© después de eliminar cualquier comilla (simple o doble). Las llamadas sucesivas a la macro 'testit' demuestran cómo SAS© maneja las cadenas de caracteres, ya sean pasadas directamente, entre comillas simples o entre comillas dobles. Este script es útil para comprender la manipulación de cadenas de caracteres en el entorno macro SAS©.
Análisis de datos

Type : CREATION_INTERNE


El script no procesa datos SAS existentes ni crea datos persistentes. Manipula y muestra una cadena de caracteres literal pasada como parámetro de macro, utilizando únicamente la consola (registro) para la salida.

1 Bloque de código
MACRO DEFINITION & DATA STEP
Explicación :
Este bloque de código define y llama a la macro `testit`. La macro toma un parámetro `path`. Dentro de la macro, se utiliza un paso `DATA _NULL_` para escribir directamente en el registro SAS. La función `%SYSFUNC(DEQUOTE(&path))` es crucial aquí: elimina las comillas (simples o dobles) del valor pasado al parámetro `path` antes de que se muestre. Las tres llamadas subsiguientes a `%testit` muestran cómo la función `DEQUOTE` maneja diferentes sintaxis de paso de cadena (sin comillas, con comillas simples, con comillas dobles), asegurando que el resultado mostrado en el registro sea siempre la ruta sin comillas.
¡Copiado!
1%macro testit(path=);
2DATA _null_;
3put "%sysfunc(dequote(&path))";
4RUN;
5%mend testit;
6 
7%testit(path=D:\Projects\);
8%testit(path='D:\Projects\');
9%testit(path="D:\Projects\");
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.