Publicado el :
Utilidad CREATION_INTERNE

Verificación de la Existencia de un Archivo en SAS Drive

Este código también está disponible en: Deutsch English Français
La macro `%mfv_existfile` toma un parámetro `filepath` (la ruta completa del archivo en SAS© Drive, ej: /Public/myfile.txt). Utiliza `%mf_getuniquefileref()` para generar una fileref temporal. El nombre y la ruta del archivo se extraen de `filepath`. Se intenta asignar la fileref al archivo a través de la función `filename()` con el motor 'filesrvc'. Si la asignación es exitosa (devuelve 0), la función `fexist()` se utiliza para confirmar la existencia real del archivo. En caso de que `filename()` falle, la macro devuelve 0 y se asegura de que la macro-variable del sistema `&syscc` se reinicie a 0 para evitar ocultar posibles problemas posteriores. Se realiza una verificación inicial de `&syscc` a través de `%mf_abort` para asegurar que la macro no se llame en un estado de error.
Análisis de datos

Type : CREATION_INTERNE


El script no utiliza ni crea datos en el sentido de conjuntos de datos SAS tradicionales. Su objetivo es interactuar con los metadatos del sistema de archivos de SAS Drive para verificar la existencia de un objeto (archivo), cuya ruta se proporciona como parámetro.

1 Bloque de código
Appel Macro (%mf_abort)
Explicación :
Este bloque llama a la macro `%mf_abort` para verificar si la macro-variable del sistema `&syscc` (código de retorno de error) no es nula. Si este es el caso, indica un error previo y la macro se detiene, evitando así ejecutar el código en un estado inesperado.
¡Copiado!
1%mf_abort(
2 iftrue=(&syscc ne 0),
3 msg=Cannot enter mfv_existfile.sas with syscc=&syscc
4 )
2 Bloque de código
Manipulation de Variables Macro
Explicación :
Este bloque declara variables macro locales (`fref`, `rc`, `path`, `name`). Inicializa `fref` con una referencia de archivo única generada por `%mf_getuniquefileref()`. Las funciones macro `%scan` y `%substr` se utilizan para extraer el nombre del archivo (`name`) y su ruta (`path`) del parámetro `filepath` proporcionado.
¡Copiado!
1%local fref rc path name;
2 %let fref=%mf_getuniquefileref();
3 %let name=%scan(&filepath,-1,/);
4 %let path=%substr(&filepath,1,%LENGTH(&filepath)-%LENGTH(&name)-1);
3 Bloque de código
Fonctions SAS (filename, fexist)
Explicación :
Este bloque condicional intenta asignar la fileref (`fref`) al archivo especificado en SAS Drive utilizando la función `filename()` con el motor `filesrvc`. Si la asignación es exitosa (devuelve 0), se llama a `fexist(&fref)` para verificar la existencia del archivo y se devuelve su resultado. Si la asignación falla, la macro devuelve `0` y la macro-variable `&syscc` se reinicia explícitamente a `0`.
¡Copiado!
1%IF %sysfunc(filename(fref,,filesrvc,folderPath="&path" filename="&name"))=0
2 %THEN %DO;
3 %sysfunc(fexist(&fref))
4 %let rc=%sysfunc(filename(fref));
5 %END;
6 %ELSE %DO;
7 0
8 %let syscc=0;
9 %END;
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.
Información de copyright : Autor principal de la macro `mfv_existfile`: Allan Bowe. Esta macro llama o hace referencia a componentes o macros distintos y con derechos de autor, incluyendo: '_version.sas' (Copyright (c) 2001-2006 Rodney Sparapani) y 'print_macro_parameters.sas' (Copyright © 2022, SAS Institute Inc.).