Modificador de nombres masivo
Publicado: 12 Abr 2010, 03:53
Bueno cree esta aplicación como mi solución a que el programa mp3resizer me agregaba una extensión a los mp3 que comprimía en bitrate y cuando tienes mas de 30 archivos asi molesta re nombrarlos uno por uno tiene algunas funciones utiles que le podrán servir a otros les dejo el code:
Obviamente si lo usan dejar los creditos jeje
aqui las direcciones del code complidado
http://www.4shared.com/file/PH9HqbEq/gu ... rando.html
http://www.4shared.com/file/CThFZxn5/gu ... ncion.html
Código: Seleccionar todo
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=busqueda.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Description=Elimina cualquier texto dentro de un archivo en masa
#AutoIt3Wrapper_Res_Fileversion=2.0.0.4
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_Field=Creador|Jonathan Palomino Vilca
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <GuiListView.au3>
#Include <File.au3>
#Include <GuiToolTip.au3>
Global $CABECERA = "Archivo inicial |Direccion inicial |Archivo Final |Direccion Final "
Global $ITEMID,$Lista1,$DIRECCION,$DIRE,$Musicdiv,$i,$GADROPFILES[1]
Global Const $WM_DROPFILES = 563
#Region ### START Koda GUI section ### Form=C:\autoit\koda_1.7.2.0\Forms\quitar extensiones.kxf
$Form1 = GUICreate("Quitar extensiones", 842, 455, 118, 97, -1, BitOR($WS_EX_ACCEPTFILES,$WS_EX_WINDOWEDGE))
$BTNPROCEDER = GUICtrlCreateButton("Proceder", 232, 360, 75, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$SALIR = GUICtrlCreateButton("Salir", 376, 360, 75, 25, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Seleccionar Carpeta", 48, 24, 100, 17)
$ABRIR = GUICtrlCreateButton("Abrir", 216, 20, 75, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Label2 = GUICtrlCreateLabel("Extension a eliminar", 48, 64, 97, 17)
$EXTENCION = GUICtrlCreateInput("", 216, 62, 73, 21)
_LISTADO()
$Progress1 = GUICtrlCreateProgress(24, 400, 790, 24)
$Label3 = GUICtrlCreateLabel("Seleccionar Archivos", 363, 21, 104, 17)
$Button4 = GUICtrlCreateButton("Abrir", 531, 17, 75, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button5 = GUICtrlCreateButton("Borrar todo", 512, 360, 75, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button6 = GUICtrlCreateButton("Borrar elegido", 656, 360, 75, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Label4 = GUICtrlCreateLabel("0", 760, 432, 18, 17)
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_DROPFILES, "WM_DROPFILES_FUNC") ;;; agregar archivos de fuera
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $ABRIR
$DIRECCION = FileSelectFolder("Seleccionar carpeta a agregar", "")
If Not ($DIRECCION = "") Then AGREGAR($DIRECCION, 0)
BORRARDUPLICADOS()
GUICtrlSetData($Progress1, 0)
Case $BTNPROCEDER
For $i=0 To _GUICTRLLISTVIEW_GETITEMCOUNT($Lista1) -1
If _GUICtrlListView_GetItemText($Lista1,$i,0) = ELIMINAREXTENCION(_GUICtrlListView_GetItemText($Lista1,$i,2)) Then
$CONTROL=0
Else
$CONTROL =1
EndIf
_RENOMBRAR(_GUICtrlListView_GetItemText($Lista1,$i,1),ELIMINAREXTENCION(_GUICtrlListView_GetItemText($Lista1,$i,2)),$CONTROL)
GUICtrlSetData($Label4,($i+1))
GUICtrlSetData($Progress1, 100 /_GUICTRLLISTVIEW_GETITEMCOUNT($Lista1)*($i+1))
Next
Case $Button4
AGREGARALISTA()
GUICtrlSetData($Progress1, 0)
Case $SALIR
Exit
Case $EXTENCION
GUICtrlSetState($BTNPROCEDER, $GUI_ENABLE)
GUICtrlSetState($ABRIR, $GUI_ENABLE)
GUICtrlSetState($Button4, $GUI_ENABLE)
GUICtrlSetState($Button5, $GUI_ENABLE)
GUICtrlSetState($Button6, $GUI_ENABLE)
Case $GUI_EVENT_DROPPED
EVENTOJALAR()
Case $Button5
_GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($Lista1))
GUICtrlSetData($Progress1, 0)
GUICtrlSetData($Label4,0)
Case $Button6
$ELIMINADO = _GUICtrlListView_GetSelectedCount($Lista1)
_GUICTRLLISTVIEW_DELETEITEMSSELECTED(GUICtrlGetHandle($Lista1))
GUICtrlSetData($Label4,($i)-$ELIMINADO)
If _GUICtrlListView_GetItemText($Lista1, 0) = '' Then _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($Lista1))
EndSwitch
WEnd
Func AGREGAR($DIRECCION, $MAINF)
If $MAINF =2 Then
$Musicdiv = StringSplit($DIRECCION, '\')
$ITEMID = _GUICTRLLISTVIEW_ADDITEM($Lista1, $Musicdiv[$Musicdiv[0]], -1, 0) ;;;Nombre
_GUICTRLLISTVIEW_ADDSUBITEM($Lista1, $ITEMID, $DIRECCION, 1) ;;;Direccion
_GUICTRLLISTVIEW_ADDSUBITEM($Lista1, $ITEMID, ELIMINAREXTENCION($Musicdiv[$Musicdiv[0]]), 2)
_GUICTRLLISTVIEW_ADDSUBITEM($Lista1, $ITEMID, StringReplace($DIRECCION,ELIMINAREXTENCION($Musicdiv[$Musicdiv[0]]),"") & ELIMINAREXTENCION($Musicdiv[$Musicdiv[0]]), 3)
UBICARDUPLICADO($ITEMID)
Else
$SEARCH = FileFindFirstFile($DIRECCION & "\*.*") ;;; este da los archivos de la presente carpeta
While 1
$FILE = FileFindNextFile($SEARCH)
If @error Then ExitLoop
$ATTRIB = FileGetAttrib($DIRECCION & "\" & $FILE)
If Not StringInStr($ATTRIB, "D") Then
$ITEMID = _GUICTRLLISTVIEW_ADDITEM($Lista1, $FILE, -1, 0) ;; nombre
_GUICTRLLISTVIEW_ADDSUBITEM($Lista1, $ITEMID, $DIRECCION &"\"& $FILE, 1) ;; direccion
_GUICTRLLISTVIEW_ADDSUBITEM($Lista1, $ITEMID, ELIMINAREXTENCION($FILE), 2)
_GUICTRLLISTVIEW_ADDSUBITEM($Lista1, $ITEMID, $DIRECCION &"\"&ELIMINAREXTENCION($FILE), 3)
UBICARDUPLICADO($ITEMID)
EndIf
WEnd
FileClose($SEARCH)
$SEARCH = FileFindFirstFile($DIRECCION & "\*.*") ;;;; Este da las carpetas
While 1
$FILE = FileFindNextFile($SEARCH)
If @error Then ExitLoop
$ATTRIB = FileGetAttrib($DIRECCION & "\" & $FILE)
If StringInStr($ATTRIB, "D") Then
UBICARDUPLICADO($ITEMID)
$SUBTEMP = $DIRECCION & "\" & $FILE
AGREGAR($SUBTEMP, $MAINF)
UBICARDUPLICADO($ITEMID)
EndIf
WEnd
FileClose($SEARCH)
EndIf
EndFunc
Func _LISTADO()
$Lista1 = GUICtrlCreateListView($CABECERA, 24, 104, 786, 214, $LVS_NOSORTHEADER, $WS_EX_CLIENTEDGE)
GUICtrlSetState($Lista1, $GUI_DROPACCEPTED)
_GUICTRLLISTVIEW_SETEXTENDEDLISTVIEWSTYLE($Lista1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_INFOTIP)) ;;;, $LVS_EX_TRACKSELECT
Local $HTOOLTIP = _GUICTRLLISTVIEW_GETTOOLTIPS($Lista1)
If IsHWnd($HTOOLTIP) Then
WinSetOnTop($HTOOLTIP, "", 1)
_GUITOOLTIP_SETDELAYTIME($HTOOLTIP, 3, 60)
EndIf
EndFunc
Func BORRARDUPLICADOS()
Local $K, $D, $N, $DECISION = 0
$N = _GUICTRLLISTVIEW_GETITEMCOUNT($Lista1) ;;Tamaño de la lista comiensa segun numero
For $K = 1 To $N
$D = _GUICTRLLISTVIEW_GETITEMPARAM($Lista1, $N - $K)
If $D = 2 Then
If $DECISION = 0 Then
$DECISION = MsgBox(262148, "Duplicado encontrado", "El archivo que agrego ya existe ¿desea eliminarlo?")
EndIf
If $DECISION = 6 Then
GUICtrlSendMsg($Lista1, 4104, $N - $K, 0)
EndIf
EndIf
Next
EndFunc
Func UBICARDUPLICADO($ELEMENTO)
Local $NIT, $K, $AA, $BB
$NIT = _GUICTRLLISTVIEW_GETITEMCOUNT($Lista1) ;;;;Tamaño de la lista comiensa segun numero
$NOMBRE1 = _GUICTRLLISTVIEW_GETITEMTEXT($Lista1, $ITEMID, 0)
$DIRECCION1 = _GUICTRLLISTVIEW_GETITEMTEXT($Lista1, $ITEMID, 1)
For $K = 0 To $NIT - 1
If Not ($K = $ELEMENTO) Then
If _GUICTRLLISTVIEW_GETITEMTEXT($Lista1, $K, 0) = $NOMBRE1 Then
If _GUICTRLLISTVIEW_GETITEMTEXT($Lista1, $K, 1) = $DIRECCION1 Then
_GUICTRLLISTVIEW_SETITEMPARAM($Lista1, $ITEMID, 2)
EndIf
EndIf
EndIf
Next
EndFunc
Func AGREGARALISTA()
$Music = FileOpenDialog('Añadir archivos', '', 'Cualquier Archivo (*.*)', 5, '', $Form1)
If not @error Then
$Musicdiv = StringSplit($Music, '|') ;Divido en variables la ruta anteriormente dada por $Music dependiendo de '|'
If $Musicdiv[0] <> 1 Then ;Si el valor es diferente a 1 entonces
For $N = 2 To $Musicdiv[0] ;Añadir varios archivos
$ITEMID = _GUICtrlListView_AddItem($Lista1, $Musicdiv[$N])
_GUICtrlListView_AddSubItem($Lista1, $ITEMID, $Musicdiv[1] &"\"& $Musicdiv[$N], 1)
_GUICTRLLISTVIEW_ADDSUBITEM($Lista1, $ITEMID, ELIMINAREXTENCION($Musicdiv[$N]), 2)
_GUICTRLLISTVIEW_ADDSUBITEM($Lista1, $ITEMID, $Musicdiv[1] &"\"&ELIMINAREXTENCION($Musicdiv[$N]), 3)
UBICARDUPLICADO($ITEMID)
Next
Else
$Musicdiv = StringSplit($Music, '\') ;Añadir un archivo
$ITEMID = _GUICtrlListView_AddItem($Lista1, $Musicdiv[$Musicdiv[0]])
_GUICtrlListView_AddSubItem($Lista1, $ITEMID, $Music, 1)
_GUICTRLLISTVIEW_ADDSUBITEM($Lista1, $ITEMID, ELIMINAREXTENCION($Musicdiv[$Musicdiv[0]]), 2)
$DIRE = StringReplace($Music, $Musicdiv[$Musicdiv[0]], "")
_GUICTRLLISTVIEW_ADDSUBITEM($Lista1, $ITEMID, $DIRE &ELIMINAREXTENCION($Musicdiv[$Musicdiv[0]]), 3)
UBICARDUPLICADO($ITEMID)
EndIf
BORRARDUPLICADOS()
EndIf
EndFunc
Func ELIMINAREXTENCION($DATO)
If GUICtrlRead($EXTENCION) = "" Then
Return $DATO
EndIf
$text = StringReplace($DATO, GUICtrlRead($EXTENCION), "")
Return $text
EndFunc
Func _RENOMBRAR($NOMBREORIGEN,$NUEVONOMBRE,$con)
If $con =1 Then _FileRename($NOMBREORIGEN,$NUEVONOMBRE) ;;controlar que no se envia lo mismo
EndFunc
Func WM_DROPFILES_FUNC($HWND, $MSGID, $WPARAM, $LPARAM) ;;; funcion evento para jalar
Local $NSIZE, $PFILENAME
Local $NAMT = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $WPARAM, "int", -1, "ptr", 0, "int", 255)
For $I = 0 To $NAMT[0] - 1
$NSIZE = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $WPARAM, "int", $I, "ptr", 0, "int", 0)
$NSIZE = $NSIZE[0] + 1
$PFILENAME = DllStructCreate("char[" & $NSIZE & "]")
DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $WPARAM, "int", $I, "ptr", DllStructGetPtr($PFILENAME), "int", $NSIZE)
ReDim $GADROPFILES[$I + 1]
$GADROPFILES[$I] = DllStructGetData($PFILENAME, 1)
$PFILENAME = 0
Next
EndFunc
Func EVENTOJALAR()
For $I = 0 To UBound($GADROPFILES) - 1
$DIRECCION = $GADROPFILES[$I]
If StringInStr(FileGetAttrib($DIRECCION), "D") Then
AGREGAR($DIRECCION,0) ;;; 0 para carpeta
Else
AGREGAR($DIRECCION,2)
EndIf
Next
BORRARDUPLICADOS()
EndFunc
aqui las direcciones del code complidado
http://www.4shared.com/file/PH9HqbEq/gu ... rando.html
http://www.4shared.com/file/CThFZxn5/gu ... ncion.html