CI-1322 Autómatas y compiladores

Tarea #9

Programa en Perl para cambiar nombres de archivos.

                                                                                                                                                              Realizado por :           

Sharon Amador Vargas            A10218  
 Roberto Hernández Montoya    A11727

 

 

TABLA DE CONTENIDOS

 

 

Introducción   2

Descripción del problema  2

Problema  2

Solución   2

Objetivos  2

Requerimientos  2

Herramientas usadas  3

El código de entrada para el interprete de perl fue:  3

Compilador Usado   4

¿Cómo compilar el programa?   5

Guía de uso del programa  5

Datos de prueba del programa   5

Salidas del programa   6

Resultados de los cambios:  6

Código fuente   7

Bibliografía  7

 

 

 

 


 


Introducción

 

            La tarea presentada a continuación es una introducción a las facilidades que el lenguaje perl ofrece al programador, ya que no hay que preocuparse de declaración de variables, de declaraciones de inicio o fin de programas, así como de la creación de archivos de encabezado, y archivos de definición de procedimientos (como en c++), si no que se va al grano a la hora de programar, y se ofrecen casi todas las opciones presentes en el lenguaje c++, por lo que es un leguaje poderoso para crea aplicaciones sencillas y que se necesitan e un corto plazo de tiempo.

 

 


 

Descripción del problema

 

Problema  

 

Crear un programa que modifique todos los nombres de archivos de música que aparecen con el siguiente formato: #canción – Artista – Nombre de la Canción, cambiándolos por el siguiente formato: Nombre de la Canción (es decir se le quita el # de la canción y el nombre del artista.)

 

Solución

 

El problema se soluciona creando programa en perl que abre una carpeta de archivos donde se encuentran los archivos que quieren modificar, y modifica los nombres de todos los archivos que contienen el patrón #canción – Artista – Nombre de la Canción cambiando el nombre del archivo a sólo el nombre de la canción.

Objetivos

R      Crear un programa en perl que modifique nombre de archivos.

Requerimientos

R      Conocimiento en la utilización de expresiones regulares para describir patrones, para poder así detectar el patrón que se desea modificar.

 

 

 


 

Herramientas usadas

 

               La principal y única herramienta que se usó fue el interprete de perl para windows.

 

 


 

 

El código de entrada para el interprete de perl fue:

 

print("Para que este programa funcione debe estar fuera de la carpeta que contiene los archivos que desea modificar\n");

print("________________________________________________________________________________\n");

print("Escriba el nombre de la carpeta dentro del cual se van a cambiar los nombres de los archivos\n");

print("________________________________________________________________________________\n");

$ruta = <STDIN>;

chop($ruta);

opendir(HOMEDIR, "$ruta") ||

 die ("No se puede abrir el directorio");

  $a =0;

while ($filename = readdir(HOMEDIR)) {

    if((-e "$ruta/$filename") && ($filename =~ /[0-9]+[ ]*[-][ ]*[\w]+([ ]*[\w]*)*[ ]*[-]/)) {

       print("sustituyendo $filename por ");

       $cambio = $filename;

       $cambio =~ s/[0-9]+[ ]*[-][ ]*[\w]+([ ]*[\w]*)*[ ]*[-]//;

       print("$cambio\n");

       rename("$ruta/$filename", "$ruta/$cambio");

      # Entra aquí si el fichero existe

      $a = $a + 1;

    }  

}

print ("Se efectuaron un total de $a sustituciones de nombres de archivos\n");

closedir(HOMEDIR);

print("\nPresione enter para continuar\n");

while(<STDIN>!= "\n"){}

exit(0);

 



Compilador Usado

ActivePerl-5.6.0.623-MSWin32-x86-multi-thread.

 

 



¿Cómo compilar el programa?

 

               Si se tiene instalado el ActivePerl-5.6.0.623-MSWin32-x86-multi-thread, simplemente se da doble click al archivo proporcionado (Renombrar.pl) que debe estar un nivel fuera de la carpeta donde se encuentran los archivos que se van a modificar. Si no se tiene instalado perl, o las asociaciones no estan hechas con los archivos *.pl debe copiar el interprete de perl (perl.exe) en la carpeta del archivo proporcionado, y por medio de la línea de comandos ejecutarlo de la siguiente manera:  perl renombrar.pl”

 

 


 

 

Guía de uso del programa

 

  1. El programa solicita introducir nombre de la carpeta donde se encuentran los archivos a modificar

 

 

  1. El programa indica cuales fueron los nombres de archivos modificados y cuales fueron las modificaciones hechas. Para terminar solo se presiona enter.

 

 


 

 

Datos de prueba del programa

 

Los datos de prueba del programa fueron 8 archivos .wav y .mp3 con el formato #canción – Artista – Nombre de la Canción para los nombres de las cancines.

 

1.            

 

 

 


 


Salidas del programa

 

1. 

 

 


 

 

Resultados de los cambios:

 

 

 

 


 


Código fuente

 

print("Para que este programa funcione debe estar fuera de la carpeta que contiene los archivos que desea modificar\n");

print("________________________________________________________________________________\n");

print("Escriba el nombre de la carpeta dentro del cual se van a cambiar los nombres de los archivos\n");

print("________________________________________________________________________________\n");

$ruta = <STDIN>;

chop($ruta);

opendir(HOMEDIR, "$ruta") ||

 die ("No se puede abrir el directorio");

  $a =0;

while ($filename = readdir(HOMEDIR)) {

    if((-e "$ruta/$filename") && ($filename =~ /[0-9]+[ ]*[-][ ]*[\w]+([ ]*[\w]*)*[ ]*[-]/)) {

       print("sustituyendo $filename por ");

       $cambio = $filename;

       $cambio =~ s/[0-9]+[ ]*[-][ ]*[\w]+([ ]*[\w]*)*[ ]*[-]//;

       print("$cambio\n");

       rename("$ruta/$filename", "$ruta/$cambio");

      # Entra aquí si el fichero existe

      $a = $a + 1;

    }  

}

print ("Se efectuaron un total de $a sustituciones de nombres de archivos\n");

closedir(HOMEDIR);

print("\nPresione enter para continuar\n");

while(<STDIN>!= "\n"){}

exit(0);

 

 


 

 

Bibliografía

 

Perl 5.0 Un lenguaje multiuso, Autor José Miguel Prellezo Gutiérrez