Publicado el :
Prueba CREATION_INTERNE

Prueba de la macro mf_writefile

Este código también está disponible en: Deutsch English Français
En espera de validación
El programa está estructurado en una serie de pruebas. Inicialmente, utiliza `%mf_writefile` para crear un archivo en el directorio `&sasjswork` con dos líneas. Un paso `DATA _null_` lee la segunda línea para almacenarla en una macro-variable (`test1`). La macro `%mp_assert` se utiliza luego para verificar la ausencia de errores y la conformidad del contenido. Una segunda llamada a `%mf_writefile` sobrescribe el archivo con contenido modificado. Se repiten los mismos pasos de lectura y aserción para verificar la sobrescritura (`test2`). Finalmente, el script declara macro-variables globales (`test3`, `test4`) y llama a `%mf_writefile` con la opción `mode=a` para añadir nuevas líneas al archivo. Una última serie de `DATA _null_` y `%mp_assert` valida que las líneas anteriores no han sido modificadas y que las nuevas líneas se han añadido correctamente.
Análisis de datos

Type : CREATION_INTERNE


Los datos se generan y manipulan completamente de forma interna. La macro `%mf_writefile` crea un archivo de texto temporal (`&sasjswork/myfile.txt`) que sirve como origen y destino para las operaciones de lectura y escritura. No se utiliza ningún dato externo al script o de bibliotecas SAS estándar como SASHELP para la lógica de negocio o las pruebas.

1 Bloque de código
Macro %mf_writefile Data
Explicación :
Esta llamada a la macro `%mf_writefile` crea o sobrescribe el archivo `myfile.txt` en la biblioteca de trabajo temporal `&sasjswork`. Escribe 'some content' como primera línea y 'more content' como segunda línea.
¡Copiado!
1%mf_writefile(&sasjswork/myfile.txt,l1=some content,l2=more content)
2 Bloque de código
DATA STEP
¡Copiado!
1DATA _null_;
2 INFILE "&sasjswork/myfile.txt";
3 INPUT;
4 IF _n_=2 THEN call symputx('test1',_infile_);
5RUN;
3 Bloque de código
Macro %mp_assert
¡Copiado!
1%mp_assert(
2 iftrue=(&syscc=0),
3 desc=Check code ran without errors,
4 outds=work.test_results
5)
6%mp_assert(
7 iftrue=(&test1=more content),
8 desc=Checking line was created,
9 outds=work.test_results
10)
4 Bloque de código
Macro %mf_writefile Data
¡Copiado!
1%mf_writefile(&sasjswork/myfile.txt,l1=some content,l2=different content)
5 Bloque de código
DATA STEP
¡Copiado!
1DATA _null_;
2 INFILE "&sasjswork/myfile.txt";
3 INPUT;
4 IF _n_=2 THEN call symputx('test2',_infile_);
5RUN;
6 Bloque de código
Macro %mp_assert
¡Copiado!
1%mp_assert(
2 iftrue=(&syscc=0),
3 desc=Check code ran without errors for test2,
4 outds=work.test_results
5)
6%mp_assert(
7 iftrue=(&test2=different content),
8 desc=Checking second line was overwritten,
9 outds=work.test_results
10)
7 Bloque de código
Macro %mf_writefile Data
¡Copiado!
1%global test3 test4;
2%mf_writefile(&sasjswork/myfile.txt
3 ,mode=a
4 ,l1=%str(aah, content)
5 ,l2=append content
6)
8 Bloque de código
DATA STEP
¡Copiado!
1DATA _null_;
2 INFILE "&sasjswork/myfile.txt";
3 INPUT;
4 IF _n_=2 THEN call symputx('test3',_infile_);
5 IF _n_=4 THEN call symputx('test4',_infile_);
6RUN;
9 Bloque de código
Macro %mp_assert
¡Copiado!
1%mp_assert(
2 iftrue=(&syscc=0),
3 desc=Check code ran without errors for test2,
4 outds=work.test_results
5)
6%mp_assert(
7 iftrue=(&test3=different content),
8 desc=Checking second line was not overwritten,
9 outds=work.test_results
10)
11%mp_assert(
12 iftrue=(&test4=append content),
13 desc=Checking fourth line was appended,
14 outds=work.test_results
15)
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.