2 de octubre de 2016

Dos aplicaciones de archivos de texto.

   Esta entrada presenta dos sencillas pero prácticas aplicaciones de los archivos de texto; recuerdo al lector que las posibilidades están limitadas únicamente a la imaginación del programador.

Implementación de cat.
   El comando cat (por concatenar) es un programa de Unix y GNU/Linux utilizado para concatenar y mostrar archivos en la salida estándar.

   El programa del Ejemplo 9.3 realiza una implementación básica del comando cat respecto a la presentación de archivos en la salida estándar, no en cuanto a la concatenación.

   La mayor parte de los elementos y sentencias utilizadas en el Ejemplo 9.3 ya han sido estudiados y presentados con anterioridad, por lo que debería comprenderse sin ningún problema. En este sentido, sólo se enfatizarán los siguientes aspectos:
  1. En caso de que no se proporcionen o se exceda el número de argumentos requeridos para su ejecución (líneas 11 y 12), se presenta una sentencia de uso del comando al estilo de los comandos de Unix y GNU/Linux.
  2. Se utiliza directamente la cadena almacenada en argv[1] para acceder al archivo indicado en la línea de comandos (línea 13).
  3. Se hace uso de la función fputs (línea 15) la cual imprime lo que se le envía como primer argumento, en el flujo especificado como su segundo argumento es decir: imprime en la salida estándar (stdout) la cadena "cadena", misma que fue leída por la función fgets en la línea 14.
   Pruebe el funcionamiento del programa del Ejemplo 9.3 y asegúrese de proporcionarle archivos de texto como argumento; puede probar con el código fuente del mismo programa por ejemplo.

Cambia caracteres.
   Suponga que se tiene la necesidad de cambiar cada ocurrencia (aparición) de un carácter dentro de un archivo por otro carácter distinto. Un escenario de solución para esto es realizar manualmente el cambio, otro posible escenario, es escribir un programa en C que lleve a cabo dicha tarea por nosotros; el Ejemplo 9.4 muestra un programa que satisface dicha necesidad.

   Al igual que antes, las sentencias del Ejemplo 9.4 deben resultar familiares al lector, por lo que sólo se resaltarán los siguientes puntos:
  1. La función main procesa los argumentos introducidos en la línea de comandos, y los utiliza para enviárselos a la función que realizará el cambio sobre el archivo: cambiaOcurrenciaArchivo.
  2. La función cambiaOcurrenciaArchivo recibe cuatro parámetros:
    1. El carácter a reemplazar v.
    2. El carácter n que substituirá a v.
    3. La cadena a1 que contiene la ruta y el nombre del archivo sobre el que se buscará a v.
    4. La cadena a2 que contiene la ruta y el nombre del archivo sobre el que se realizará el cambio de v por n.
  3. La constate simbólica TAM: en este tipo de uso, su ámbito se define de la línea 31 a la 49.
  4. La función cambiaOcurrenciaCadena, que se encarga de substituir el carácter v por el carácter n en la cadena cad utilizando notación de apuntadores.
  5. El uso de la función cambiaOcurrenciaCadena de la línea 44 para cambiar la cadena "cadena" leída del archivo archivoPtr1 (línea 43), en la cadena cadena que se almacenará en el archivo archivoPtr2 (línea 45) por medio de la función fputs (la cual trabaja de manera análoga a la función puts pero recibe como segundo parámetro, un apuntador al flujo sobre el que se desea escribir la cadena referida por su primer parámetro).

     Pruebe con distintos archivos de texto el programa del Ejemplo 9.4. La salida en pantalla es sólo informativa respecto a la terminación del programa, lo interesante ocurre en los archivos procesados, los cuales son proporcionados en la invocación del programa.