CI-1322 Autómatas y compiladores
Realizado por :
Sharon Amador Vargas A10218
Roberto Hernández Montoya A11727
TABLA DE CONTENIDOS
El código de entrada
para el interprete de perl fue:
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.
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.)
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.
R
Crear
un programa en perl que modifique nombre de archivos.
R
Conocimiento
en la utilización de expresiones regulares para describir patrones, para poder
así detectar el patrón que se desea modificar.
La
principal y única herramienta que se usó fue el interprete
de perl para windows.
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);
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”
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.
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);
Perl
5.0 Un
lenguaje multiuso, Autor José
Miguel Prellezo Gutiérrez