El otro día me llegó al correo la siguiente cuestión acerca de caracteres extraños en un fichero de texto y la importación a SAS:

Tengo un problema a la hora de importar a SAS un fichero .txt. El caso es que tiene en algunos registros el carácter “flechita”. Ejemplo: Calle Paseo de la Castellana “flechita” 60. Cuando lo importo como carácter, para al llegar a la flechita. No sé si podrás ayudarme. Muchas gracias por adelantado.

Se me ocurrió un programa muy rápido que nos permite leer carácter a carácter un fichero plano y eliminar aquellos caracteres que nos den problemas:

%let directorio = ;
%let archivo = ;

data _null_;
    length char $1.;
    infile "&directorio.\&archivo..txt" lrecl=1 recfm=F missover dsd;
    file "&directorio.\&archivo._modificado.txt" lrecl=1 recfm=F;
    input char $char1.;
    if char not in ('A','B','C','D','E','F','G','H','I','J','K',
                    'L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','Ñ',
                    '1','2','3','4','5','6','7','8','9','0') then char = " ";
    put char $char1.;
run;

Necesita un directorio, un archivo con extensión .txt y nos creará ese archivo con el sufijo _modificado y limpio de caracteres extraños (en este caso sólo con letras y números; ojo, que podéis necesitar signos de puntuación). Creo que es muy sencillo y bastante práctico. Espero que os sea de utilidad; a la lectora que planteó la duda sí lo fue. Saludos.