Extracción de la ruta base de un archivo

Este código también está disponible en: Deutsch English Français
Nivel de dificultad
Principiante
Publicado el :
Esta macro toma una ruta de archivo completa como entrada a través del parámetro 'pth' y devuelve solo la parte de la ruta que precede al último separador de directorio (barra diagonal o barra invertida), excluyendo así el nombre del archivo y su extensión. Está diseñada para la manipulación de cadenas de caracteres dentro del entorno de macros SAS©.
Análisis de datos

Type : CREATION_INTERNE


La macro opera sobre una cadena de caracteres proporcionada como parámetro ('pth') y no lee datos de tablas SASHELP o fuentes externas. Manipula cadenas de caracteres en memoria para construir el resultado.

1 Bloque de código
DEFINICIÓN DE MACRO
Explicación :
Este bloque define la macro `getFileStem`. Utiliza las funciones SAS `reverse` para invertir la cadena de ruta, `indexc` para encontrar la posición del primer separador de directorio (barra diagonal o barra invertida, que corresponde al último en la cadena original invertida), y `qsubstr` para extraer la parte pertinente. El resultado se invierte de nuevo para obtener la ruta base. Las funciones `qleft` y `qsysfunc` se utilizan para manejar las comillas y ejecutar las funciones SAS en modo macro, asegurando la robustez del procesamiento de cadenas de caracteres.
¡Copiado!
1%macro getFileStem(pth)/des="Extract the path without the file name and extension";
2 %local revstr cutstr gotstm;
3 %let revstr=%qleft(%qsysfunc(reverse(&pth)));
4 %let cutstr=%qsubstr(&revstr,%qsysfunc(indexc(&revstr,%str(/\))));
5 %let gotstm=%qleft(%qsysfunc(reverse(&cutstr)));
6 %str(&gotstm)
7%mend getFileStem;
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.

Documentación relacionada

Aucune documentation spécifique pour cette catégorie.