Los ejemplos utilizan datos generados (datalines) o archivos temporales creados por el agente. Los datos SASHELP se utilizan cuando es apropiado para procedimientos de exportación/impresión.
1 Bloque de código
DATA STEP Data
Explicación : Este ejemplo utiliza la instrucción `INFILE` para especificar un archivo externo (`/tmp/input-file.txt`) como fuente de datos. La instrucción `INPUT` lee los datos en las variables `PatientID`, `Week1`, `Week8` y `Week16`. Se calcula una nueva variable `loss`, y luego el procedimiento `PRINT` muestra el contenido del conjunto de datos `weight`.
¡Copiado!
/* Création d'un fichier d'entrée factice */
filename mydata_example1 "/tmp/input-file.txt";
data _null_;
file mydata_example1;
put "101 70 68 65";
put "102 80 78 75";
put "103 90 88 85";
run;
data weight;
infile mydata_example1;
input PatientID $ Week1 Week8 Week16;
loss=Week1-Week16;
run;
proc print data=weight;
run;
1
/* Création d'un fichier d'entrée factice */
2
filename mydata_example1 "/tmp/input-file.txt";
3
DATA _null_;
4
file mydata_example1;
5
put "101 70 68 65";
6
put "102 80 78 75";
7
put "103 90 88 85";
8
RUN;
9
10
DATA weight;
11
INFILE mydata_example1;
12
INPUT PatientID $ Week1 Week8 Week16;
13
loss=Week1-Week16;
14
RUN;
15
16
PROC PRINTDATA=weight;
17
RUN;
2 Bloque de código
DATA STEP Data
Explicación : Este ejemplo muestra cómo especificar directamente la ruta física completa de un archivo externo en la instrucción `INFILE`. SAS lee los datos de este archivo para crear el conjunto de datos `weight_direct`.
¡Copiado!
/* Création d'un fichier d'entrée factice */
filename temp_input_direct "/tmp/direct_input.txt";
data _null_;
file temp_input_direct;
put "A01 70 65";
put "B02 80 72";
put "C03 90 83";
run;
data weight_direct;
infile '/tmp/direct_input.txt'; /* Chemin direct vers le fichier */
input idno $ week1 week16;
loss=week1-week16;
run;
proc print data=weight_direct;
run;
INFILE'/tmp/direct_input.txt'; /* Chemin direct vers le fichier */
12
INPUT idno $ week1 week16;
13
loss=week1-week16;
14
RUN;
15
16
PROC PRINTDATA=weight_direct;
17
RUN;
3 Bloque de código
DATA STEP Data
Explicación : Este ejemplo ilustra la escritura de datos en un archivo externo especificando directamente su ruta física en la instrucción `FILE`. Las instrucciones `PUT` escriben información condicional basada en la variable `loss` en el archivo `/tmp/output_status.txt`.
¡Copiado!
/* Création de données factices pour calculer 'loss' */
filename temp_input_for_status "/tmp/direct_input_for_status.txt";
data _null_;
file temp_input_for_status;
put "A01 70 65"; /* loss = 5 */
put "B02 80 70"; /* loss = 10 */
put "C03 90 70"; /* loss = 20 */
run;
data weight_for_status;
infile temp_input_for_status;
input idno $ week1 week16;
loss=Week1-Week16;
run;
/* Écriture du statut dans un fichier externe */
filename temp_output_status "/tmp/output_status.txt";
data _null_;
set weight_for_status;
file temp_output_status; /* Chemin direct vers le fichier de sortie */
if loss ge 5 and loss le 9 then
put idno loss 'AWARD STATUS=3';
else if loss ge 10 and loss le 14 then
put idno loss 'AWARD STATUS=2';
else if loss ge 15 then
put idno loss 'AWARD STATUS=1';
run;
/* Affichage du contenu du fichier de sortie */
%inc "/tmp/output_status.txt";
1
/* Création de données factices pour calculer 'loss' */
file temp_output_status; /* Chemin direct vers le fichier de sortie */
21
IF loss ge 5 and loss le 9THEN
22
put idno loss 'AWARD STATUS=3';
23
ELSEIF loss ge 10 and loss le 14THEN
24
put idno loss 'AWARD STATUS=2';
25
ELSEIF loss ge 15THEN
26
put idno loss 'AWARD STATUS=1';
27
RUN;
28
29
/* Affichage du contenu du fichier de sortie */
30
%inc "/tmp/output_status.txt";
4 Bloque de código
%INCLUDE Data
Explicación : La macroinstrucción `%INCLUDE` se utiliza para insertar y ejecutar el contenido de un archivo externo (`/tmp/source_program.sas`) directamente en el flujo del programa SAS. Esto permite modularizar el código o ejecutar scripts preexistentes.
¡Copiado!
/* Création d'un fichier source factice avec des instructions SAS */
filename source_pgm_include "/tmp/source_program.sas";
data _null_;
file source_pgm_include;
put "data example; x=1; y=2; run;";
put "proc print data=example; run;";
run;
%include '/tmp/source_program.sas'; /* Inclusion directe du fichier */
1
/* Création d'un fichier source factice avec des instructions SAS */
%include '/tmp/source_program.sas'; /* Inclusion directe du fichier */
5 Bloque de código
FILENAME, DATA STEP Data
Explicación : La instrucción `FILENAME` asigna un nombre corto (fileref `mydata`) a un archivo externo. Este fileref se utiliza luego en la instrucción `INFILE` para leer los datos, ofreciendo una abstracción de la ruta física del archivo.
¡Copiado!
/* Création d'un fichier d'entrée factice */
filename mydata_ref_input "/tmp/ref_input.txt";
data _null_;
file mydata_ref_input;
put "ID001 50 45";
put "ID002 60 55";
run;
/* Assignation d'un fileref au fichier */
filename mydata "/tmp/ref_input.txt";
data weight_ref;
infile mydata; /* Utilisation du fileref */
input idno $ week1 week16;
loss=week1-Week16;
run;
proc print data=weight_ref; run;
1
/* Création d'un fichier d'entrée factice */
2
filename mydata_ref_input "/tmp/ref_input.txt";
3
DATA _null_;
4
file mydata_ref_input;
5
put "ID001 50 45";
6
put "ID002 60 55";
7
RUN;
8
9
/* Assignation d'un fileref au fichier */
10
filename mydata "/tmp/ref_input.txt";
11
DATA weight_ref;
12
INFILE mydata; /* Utilisation du fileref */
13
INPUT idno $ week1 week16;
14
loss=week1-Week16;
15
RUN;
16
PROC PRINTDATA=weight_ref; RUN;
6 Bloque de código
FILENAME, PROC IMPORT Data
Explicación : Se asigna un fileref (`mydata`) a un archivo delimitado. `PROC IMPORT` utiliza este fileref para importar los datos a un conjunto de datos SAS llamado `shoes`, especificando el delimitador y la inclusión de los nombres de columna.
¡Copiado!
/* Création d d'un fichier d'entrée délimité factice */
filename mydata_ref_import "/tmp/ref_import.txt";
data _null_;
file mydata_ref_import;
put "Brand,Size,Color";
put "Nike,10,Black";
put "Adidas,9,White";
run;
/* Assignation d'un fileref au fichier */
filename mydata "/tmp/ref_import.txt";
proc import datafile=mydata /* Utilisation du fileref */
out=shoes dbms=dlm replace;
delimiter=',';
getnames=YES;
run;
proc print data=shoes; run;
1
/* Création d d'un fichier d'entrée délimité factice */
2
filename mydata_ref_import "/tmp/ref_import.txt";
3
DATA _null_;
4
file mydata_ref_import;
5
put "Brand,Size,Color";
6
put "Nike,10,Black";
7
put "Adidas,9,White";
8
RUN;
9
10
/* Assignation d'un fileref au fichier */
11
filename mydata "/tmp/ref_import.txt";
12
PROC IMPORT datafile=mydata /* Utilisation du fileref */
13
out=shoes dbms=dlm replace;
14
delimiter=',';
15
getnames=YES;
16
RUN;
17
PROC PRINTDATA=shoes; RUN;
7 Bloque de código
FILENAME, DATA STEP Data
Explicación : Después de calcular la variable `loss` a partir de datos temporales, se asigna un fileref (`myreport_output`) a un archivo de salida. La instrucción `FILE` en un paso DATA `_null_` utiliza luego este fileref para escribir los resultados en el archivo especificado.
¡Copiado!
/* Création de données d'entrée factices pour générer 'loss' */
data temp_input_for_report;
input idno $ week1 week16;
cards;
ID1 100 90
ID2 80 75
;
run;
/* Calcul de 'loss' et écriture dans un fichier externe via fileref */
filename myreport_output "/tmp/my_report.txt";
data _null_;
set temp_input_for_report;
file myreport_output; /* Utilisation du fileref pour la sortie */
loss = week1 - week16;
put idno "Loss=" loss;
run;
/* Affichage du contenu du fichier de sortie */
%inc "/tmp/my_report.txt";
1
/* Création de données d'entrée factices pour générer 'loss' */
2
DATA temp_input_for_report;
3
INPUT idno $ week1 week16;
4
CARDS;
5
ID1 10090
6
ID2 8075
7
;
8
RUN;
9
10
/* Calcul de 'loss' et écriture dans un fichier externe via fileref */
11
filename myreport_output "/tmp/my_report.txt";
12
DATA _null_;
13
SET temp_input_for_report;
14
file myreport_output; /* Utilisation du fileref pour la sortie */
15
loss = week1 - week16;
16
put idno "Loss=" loss;
17
RUN;
18
19
/* Affichage du contenu du fichier de sortie */
20
%inc "/tmp/my_report.txt";
8 Bloque de código
FILENAME, PROC EXPORT
Explicación : Este ejemplo utiliza `PROC EXPORT` para exportar el conjunto de datos `SASHELP.SHOES` a un archivo externo (`/tmp/exported_shoes.txt`) cuyo nombre está definido por el fileref `myreport_export`. Los datos se exportan como datos delimitados por espacios.
¡Copiado!
/* Assignation d'un fileref au fichier de sortie */
filename myreport_export "/tmp/exported_shoes.txt";
proc export data=sashelp.shoes /* Utilisation d'un jeu de données SASHELP */
outfile=myreport_export dbms=dlm replace;
delimiter=' ';
run;
/* Affichage du contenu du fichier de sortie */
%inc "/tmp/exported_shoes.txt";
1
/* Assignation d'un fileref au fichier de sortie */
PROC EXPORTDATA=sashelp.shoes /* Utilisation d'un jeu de données SASHELP */
4
outfile=myreport_export dbms=dlm replace;
5
delimiter=' ';
6
RUN;
7
8
/* Affichage du contenu du fichier de sortie */
9
%inc "/tmp/exported_shoes.txt";
9 Bloque de código
FILENAME, %INCLUDE Data
Explicación : Se asigna un fileref (`mypgm`) a un archivo que contiene instrucciones SAS. La macroinstrucción `%INCLUDE` utiliza este fileref para incluir y ejecutar el código del archivo, lo que permite una ejecución dinámica de scripts externos.
¡Copiado!
/* Création d'un fichier source factice avec des instructions SAS */
filename mypgm_source "/tmp/program_with_fileref.sas";
data _null_;
file mypgm_source;
put "data another_example; a=10; b=20; result = a+b; run;";
put "proc print data=another_example; run;";
run;
/* Assignation d'un fileref au fichier programme */
filename mypgm "/tmp/program_with_fileref.sas";
%include mypgm; /* Inclusion du fichier via le fileref */
1
/* Création d'un fichier source factice avec des instructions SAS */
put "data another_example; a=10; b=20; result = a+b; run;";
6
put "proc print data=another_example; run;";
7
RUN;
8
9
/* Assignation d'un fileref au fichier programme */
10
filename mypgm "/tmp/program_with_fileref.sas";
11
%include mypgm; /* Inclusion du fichier via le fileref */
10 Bloque de código
FILENAME
Explicación : La instrucción `FILENAME` se puede utilizar para dirigir la salida a un dispositivo físico (como una impresora) especificando el tipo de dispositivo y las opciones del host. Para este ejemplo, se utiliza un archivo temporal para simular la salida a un dispositivo.
¡Copiado!
/* Cet exemple assigne un fileref à un périphérique de sortie. */
/* Il ne peut pas être rendu autonome sans une configuration de périphérique spécifique. */
/* Pour la démonstration, nous l'assignerons à un fichier factice. */
filename myprinter "/tmp/dummy_printer_output.txt";
data _null_;
file myprinter;
put "Ceci est une sortie de test vers un fichier d'imprimante factice.";
run;
%inc "/tmp/dummy_printer_output.txt";
1
/* Cet exemple assigne un fileref à un périphérique de sortie. */
2
/* Il ne peut pas être rendu autonome sans une configuration de périphérique spécifique. */
3
/* Pour la démonstration, nous l'assignerons à un fichier factice. */
put "Ceci est une sortie de test vers un fichier d'imprimante factice.";
8
run;
9
%inc "/tmp/dummy_printer_output.txt";
11 Bloque de código
FILENAME Data
Explicación : La instrucción `FILENAME` se utiliza para asignar un fileref (`mydir`) a un directorio. Esto permite referenciar todos los archivos de este directorio de manera concisa.
¡Copiado!
/* Création d'un répertoire factice */
%let temp_dir = /tmp/my_sas_files;
%sysexec mkdir -p &temp_dir;
filename mydir "&temp_dir"; /* Assigne le fileref au répertoire */
1
/* Création d'un répertoire factice */
2
%let temp_dir = /tmp/my_sas_files;
3
%sysexec mkdir -p &temp_dir;
4
5
filename mydir "&temp_dir"; /* Assigne le fileref au répertoire */
12 Bloque de código
DATA STEP Data
Explicación : Se asigna un fileref (`mydir`) a un directorio. La instrucción `INFILE` utiliza este fileref con el nombre del archivo entre paréntesis (`(qrt1.data)`) para leer un archivo específico ubicado en este directorio. Esto simplifica la gestión de las rutas de los archivos.
¡Copiado!
/* Création d'un répertoire factice */
%let temp_dir = /tmp/my_sas_files;
%sysexec mkdir -p &temp_dir;
/* Création d'un fichier de données factice dans le répertoire */
filename qrt1data "&temp_dir/qrt1.data";
data _null_;
file qrt1data;
put "P01 100 90";
put "P02 110 95";
run;
filename mydir "&temp_dir"; /* Assigne le fileref au répertoire */
data weight_aggr;
infile mydir(qrt1.data); /* Référence le fichier dans le répertoire via le fileref */
input idno $ week1 week16;
loss=Week1-Week16;
run;
proc print data=weight_aggr; run;
1
/* Création d'un répertoire factice */
2
%let temp_dir = /tmp/my_sas_files;
3
%sysexec mkdir -p &temp_dir;
4
5
/* Création d'un fichier de données factice dans le répertoire */
6
filename qrt1data "&temp_dir/qrt1.data";
7
DATA _null_;
8
file qrt1data;
9
put "P01 100 90";
10
put "P02 110 95";
11
RUN;
12
13
filename mydir "&temp_dir"; /* Assigne le fileref au répertoire */
14
15
DATA weight_aggr;
16
INFILE mydir(qrt1.DATA); /* Référence le fichier dans le répertoire via le fileref */
17
INPUT idno $ week1 week16;
18
loss=Week1-Week16;
19
RUN;
20
PROC PRINTDATA=weight_aggr; RUN;
13 Bloque de código
DATA STEP Data
Explicación : Se asigna un fileref (`mydir`) a un directorio. La instrucción `FILE` utiliza este fileref con el nombre del archivo entre paréntesis (`(awards.txt)`) para escribir un archivo específico en este directorio, simplificando así la gestión de las salidas a ubicaciones comunes.
¡Copiado!
/* Création d'un répertoire factice */
%let temp_dir = /tmp/my_sas_files;
%sysexec mkdir -p &temp_dir;
/* Création de données d'entrée factices pour générer 'loss' */
data temp_input_for_awards;
input idno $ week1 week16;
cards;
A1 70 65
B2 80 70
C3 90 70
;
run;
filename mydir "&temp_dir"; /* Assigne le fileref au répertoire */
data _null_;
set temp_input_for_awards;
file mydir(awards.txt); /* Écrit dans awards.txt dans le répertoire 'mydir' */
loss = week1 - week16;
if loss ge 5 and loss le 9 then
put idno loss 'AWARD STATUS=3';
else if loss ge 10 and loss le 14 then
put idno loss 'AWARD STATUS=2';
else if loss ge 15 then
put idno loss 'AWARD STATUS=1';
run;
/* Affichage du contenu du fichier de sortie */
filename show_awards "&temp_dir/awards.txt";
%inc show_awards;
1
/* Création d'un répertoire factice */
2
%let temp_dir = /tmp/my_sas_files;
3
%sysexec mkdir -p &temp_dir;
4
5
/* Création de données d'entrée factices pour générer 'loss' */
6
DATA temp_input_for_awards;
7
INPUT idno $ week1 week16;
8
CARDS;
9
A1 7065
10
B2 8070
11
C3 9070
12
;
13
RUN;
14
15
filename mydir "&temp_dir"; /* Assigne le fileref au répertoire */
16
17
DATA _null_;
18
SET temp_input_for_awards;
19
file mydir(awards.txt); /* Écrit dans awards.txt dans le répertoire 'mydir' */
20
loss = week1 - week16;
21
IF loss ge 5 and loss le 9THEN
22
put idno loss 'AWARD STATUS=3';
23
ELSEIF loss ge 10 and loss le 14THEN
24
put idno loss 'AWARD STATUS=2';
25
ELSEIF loss ge 15THEN
26
put idno loss 'AWARD STATUS=1';
27
RUN;
28
29
/* Affichage du contenu du fichier de sortie */
30
filename show_awards "&temp_dir/awards.txt";
31
%inc show_awards;
14 Bloque de código
%INCLUDE Data
Explicación : Se asigna un fileref (`mydir`) a un directorio. La macroinstrucción `%INCLUDE` utiliza este fileref con el nombre del archivo de programa entre paréntesis (`(whole.program.sas)`) para incluir y ejecutar el código de este archivo, lo que facilita la gestión de los módulos de código.
¡Copiado!
/* Création d'un répertoire factice */
%let temp_dir = /tmp/my_sas_files;
%sysexec mkdir -p &temp_dir;
/* Création d'un fichier programme factice dans le répertoire */
filename whole_program "&temp_dir/whole.program.sas";
data _null_;
file whole_program;
put "data final_check; a=5; b=10; result = a+b; run;";
put "proc print data=final_check; run;";
run;
filename mydir "&temp_dir"; /* Assigne le fileref au répertoire */
%include mydir(whole.program.sas); /* Inclut le fichier programme via le fileref */
1
/* Création d'un répertoire factice */
2
%let temp_dir = /tmp/my_sas_files;
3
%sysexec mkdir -p &temp_dir;
4
5
/* Création d'un fichier programme factice dans le répertoire */
put "data final_check; a=5; b=10; result = a+b; run;";
10
put "proc print data=final_check; run;";
11
RUN;
12
13
filename mydir "&temp_dir"; /* Assigne le fileref au répertoire */
14
%include mydir(whole.program.sas); /* Inclut le fichier programme via le fileref */
15 Bloque de código
FILENAME Data
Explicación : Esta sección presenta varios especificadores de acceso para la instrucción `FILENAME`, permitiendo referenciar archivos a través de métodos como `DATAURL` (para datos directamente codificados), `URL` (para recursos web) y `ZIP` (para archivos comprimidos). Otros especificadores como `CATALOG`, `FTP`, `Hadoop`, `SOCKET` y `WebDAV` se mencionan para escenarios de acceso más específicos (la mayoría son marcadores de posición que requieren una configuración externa para funcionar realmente).
¡Copiado!
/* Assignation d'un fileref avec le spécificateur DATAURL - Exemple autonome */
filename myfile_dataurl dataurl 'data:text/plain;base64,SGVsbG8sIFdvcmxkIQ=='; /* "Hello, World!" encodé en Base64 */
data _null_;
infile myfile_dataurl;
input;
put _infile_;
run;
/* Assignation d'un fileref avec le spécificateur URL */
/* Note: Pour une exécution réelle, cela tenterait de se connecter à la ressource distante. */
filename myfile_url URL 'https://www.example.com/index.html';
/* Pour lire le contenu, utilisez:
data _null_;
infile myfile_url;
input;
put _infile_;
run;
*/
/* Assignation d'un fileref avec le spécificateur ZIP - Exemple autonome */
/* Création d'un répertoire factice pour le fichier ZIP */
%let zip_dir = /tmp/myzipfiles;
%sysexec mkdir -p &zip_dir;
filename file_to_zip "&zip_dir/internal_file.txt";
data _null_;
file file_to_zip;
put "Contenu à l'intérieur du zip.";
run;
/* Création du fichier ZIP et ajout du fichier interne */
filename ziptool ZIP "&zip_dir/myarchive.zip";
data _null_;
file ziptool(internal_file.txt);
put "Contenu à l'intérieur du zip.";
run;
filename ziptool clear;
filename myfile_zip ZIP "&zip_dir/myarchive.zip(internal_file.txt)";
data _null_;
infile myfile_zip;
input;
put _infile_;
run;
/* Exemples de fileref avec d'autres spécificateurs (placeholders) */
/* FILENAME mycat catalog 'my.catalog' <catalog-options>; */
/* FILENAME myfile_ftp FTP '/path/to/remote/file.txt' host='ftp.example.com' user='myuser' password='mypassword' debug; */
/* FILENAME myfile_hadoop hadoop '/user/sas/data.csv' <hadoop-options>; */
/* FILENAME myfile_socket SOCKET 'localhost:12345' <tcpip-options>; */
/* FILENAME myfile_socket_server SOCKET ':54321' SERVER <tcpip-options>; */
/* FILENAME myfile_webdav WEBDAV 'https://webdav.example.com/docs/file.txt' <webdav-options>; */
1
/* Assignation d'un fileref avec le spécificateur DATAURL - Exemple autonome */
Explicación : Este ejemplo demuestra la lectura de datos binarios en SAS. Primero crea un archivo binario ficticio con dos enteros de 2 bytes. Luego, un paso DATA lee este archivo utilizando la opción `RECFM=N` para el flujo binario y el informat `IB2.` para interpretar los bytes como enteros binarios.
¡Copiado!
/* Création d'un fichier binaire factice */
filename bindata "/tmp/binary_example.bin";
data _null_;
file bindata recfm=N; /* N pour le flux binaire */
/* Écriture de deux valeurs entières de 2 octets */
put 12345 ib2. @; /* écrit 12345 comme entier de 2 octets */
put 6789 ib2.; /* écrit 6789 comme entier de 2 octets */
run;
data read_binary;
infile bindata recfm=N;
input Value1 ib2. Value2 ib2.; /* Lecture des entiers de 2 octets avec informat IB2. */
run;
proc print data=read_binary;
run;
1
/* Création d'un fichier binaire factice */
2
filename bindata "/tmp/binary_example.bin";
3
DATA _null_;
4
file bindata recfm=N; /* N pour le flux binaire */
5
/* Écriture de deux valeurs entières de 2 octets */
6
put 12345 ib2. @; /* écrit 12345 comme entier de 2 octets */
7
put 6789 ib2.; /* écrit 6789 comme entier de 2 octets */
8
RUN;
9
10
DATA read_binary;
11
INFILE bindata recfm=N;
12
INPUT Value1 ib2. Value2 ib2.; /* Lecture des entiers de 2 octets avec informat IB2. */
13
RUN;
14
15
PROC PRINTDATA=read_binary;
16
RUN;
17 Bloque de código
DATA STEP Data
Explicación : Para leer datos binarios por columna, la instrucción `INFILE` debe especificar `RECFM=F` (Fixed record format) y `LRECL=160` (longitud de registro lógico). El ejemplo crea un archivo de texto simple para la demostración, pero en un escenario real, se utilizarían informats binarios específicos (`CBw.`, `ROWw.d`) con la instrucción `INPUT` para interpretar correctamente el contenido binario.
¡Copiado!
/* Création d'un fichier factice avec des données binaires par colonne simulées */
/* Dans un vrai scénario, ce fichier contiendrait des données binaires spécifiques. */
/* Ici, nous créons un fichier texte simple pour illustrer le concept d'INFILE. */
filename colbindata "/tmp/column_binary_example.txt";
data _null_;
file colbindata;
put 'Test'; /* Simule quelques octets, non réellement binaire pour cet exemple */
run;
data out_col_binary;
infile colbindata recfm=f lrecl=160; /* Options nécessaires pour les données binaires par colonne */
/* Pour un vrai fichier binaire par colonne, des informats comme CBw. ou ROWw.d seraient utilisés */
/* input var1 cb2.; ou input var1 row1. ; */
input var1 $; /* Lecture simple pour la démo, adapter selon le format réel */
run;
proc print data=out_col_binary;
run;
1
/* Création d'un fichier factice avec des données binaires par colonne simulées */
2
/* Dans un vrai scénario, ce fichier contiendrait des données binaires spécifiques. */
3
/* Ici, nous créons un fichier texte simple pour illustrer le concept d'INFILE. */
put 'Test'; /* Simule quelques octets, non réellement binaire pour cet exemple */
8
RUN;
9
10
DATA out_col_binary;
11
INFILE colbindata recfm=f lrecl=160; /* Options nécessaires pour les données binaires par colonne */
12
/* Pour un vrai fichier binaire par colonne, des informats comme CBw. ou ROWw.d seraient utilisés */
13
/* input var1 cb2.; ou input var1 row1. ; */
14
INPUT var1 $; /* Lecture simple pour la démo, adapter selon le format réel */
15
RUN;
16
17
PROC PRINTDATA=out_col_binary;
18
RUN;
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.
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.