La macro `mp_appendfile` permite fusionar el contenido de uno o varios archivos especificados por sus 'filerefs' (referencias de archivo) al final de un archivo base existente, también designado por un 'fileref'. La operación se realiza en modo binario, garantizando la compatibilidad con cualquier tipo de archivo. El usuario es responsable de añadir los retornos de carro si es necesario en los archivos a concatenar. La macro incluye validaciones para asegurar que los 'filerefs' base y de adición se proporcionen correctamente. Itera sobre cada 'fileref' a añadir y utiliza la macro `%mp_binarycopy` para realizar la copia, incluyendo una verificación del código de retorno del sistema (`&syscc`) después de cada operación.
Análisis de datos
Type : CREATION_INTERNE
La macro no depende de conjuntos de datos SAS predefinidos o de archivos externos no gestionados por el script. Opera sobre referencias de archivos ('filerefs') que pueden asociarse con archivos temporales o con archivos creados y gestionados por el usuario dentro de la sesión SAS. El ejemplo de uso muestra la creación de archivos temporales ('temp') mediante DATA _NULL_ e instrucciones FILENAME, indicando que los datos fuente son controlados y/o generados en el entorno SAS.
1 Bloque de código
Definición de macro y validación de parámetros
Explicación : Este bloque inicializa la macro `mp_appendfile` y define sus dos parámetros de entrada, `baseref` (el fileref del archivo de destino) y `appendrefs` (una lista de filerefs de archivos a añadir). Incorpora llamadas a la macro `%mp_abort` para validar si estos parámetros son proporcionados correctamente por el usuario. Si un parámetro obligatorio falta, la macro `%mp_abort` se activa para interrumpir la ejecución y mostrar un mensaje de error claro.
¡Copiado!
%macro mp_appendfile(
baseref=0,
appendrefs=0
)/*/STORE SOURCE*/;
%mp_abort(iftrue= (&baseref=0)
,mac=&sysmacroname
,msg=%str(Baseref NOT specified!)
)
%mp_abort(iftrue= (&appendrefs=0)
,mac=&sysmacroname
,msg=%str(Appendrefs NOT specified!)
)
1
%macro mp_appendfile(
2
baseref=0,
3
appendrefs=0
4
)/*/STORE SOURCE*/;
5
6
%mp_abort(iftrue= (&baseref=0)
7
,mac=&sysmacroname
8
,msg=%str(Baseref NOT specified!)
9
)
10
%mp_abort(iftrue= (&appendrefs=0)
11
,mac=&sysmacroname
12
,msg=%str(Appendrefs NOT specified!)
13
)
2 Bloque de código
Bucle de adición de archivos
Explicación : Este bloque contiene la lógica principal de la macro. Se utiliza un bucle para iterar sobre cada 'fileref' especificado en el parámetro `appendrefs`. En cada iteración, se realiza una verificación del código de retorno del sistema (`&syscc`) a través de `%mp_abort` para asegurar que no ha ocurrido ningún error durante la operación anterior. Luego, se llama a la macro `%mp_binarycopy` para copiar el contenido del archivo fuente actual (`inref`) al archivo base (`outref`) utilizando el modo `APPEND`, lo que permite añadir el contenido al final del archivo existente.
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 : Copyright (c) 2001-2006 Rodney Sparapani; Allan Bowe, source: https://github.com/sasjs/core
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.