Si han leído mis post anteriores:
Renombrar archivos en Ruby y Array.sort en Ruby
Sabrán que hice un programa para renombrar archivos en Ruby...Y además que el Array.sort no funciona bien con valores alfanuméricos...
Esto significa que la primera versión de mi programa no funciona -:( Es decir, funciona la primera vez, pero la segunda por el error en el Array.sort comienza a eliminar archivos...Algo que nadie quiere que pase...A mi me pasó -:(
En fín...Luego de algunos cambios y varias pruebas, tengo la versión final del programa que ahora si funciona sin ningún problema -;)
$Folder = Array.new $Files = Array.new $counter = 0 $count = 0 print("Ingrese la carpeta: ") $Dir_Text = gets.chop! print("Ingrese la extension: ") $Ext_Text = gets.chop! $Dir_Text.sub!("\\","\\ \\").delete!(" ") Dir.foreach($Dir_Text) {|x| $Folder.push(x)} for file in $Folder $long = file.length - 3 if(file[$long,3] == $Ext_Text) $Full_File = $Dir_Text + "\\\\" + file $Files.push($Full_File) end end for file in $Files $count = 0 for do_file in $Files $len_count = $Files[$count].length $len_counter = $Files[$counter].length $last_count = $Files[$count].rindex("\\") + 1 $len_count -= $last_count $len_counter -= $last_count if $Files[$count].slice($last_count,$len_count).to_i > $Files[$counter].slice($last_count,$len_counter).to_i $aux = $Files[$count] $Files[$count] = $Files[$counter] $Files[$counter] = $aux end $count += 1 end $counter += 1 end $counter = 0 for file in $Files $counter += 1 $New_File = $Dir_Text + "\\\\" + $counter.to_s + "." + $Ext_Text File.rename(file,$New_File) end puts "#{$counter} archivos convertidos"
Ruby es un lenguaje excelente, pero como siempre tiene sus pequeños detalles, que debemos investigar y probar -:)
Saludos,
Blag.
No comments:
Post a Comment