Código: Seleccionar todo
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\VENTA\iconos\38.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <WinAPI.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=c:\users\portatil\desktop\trozeador de archivos\form1.kxf
$Form1_1 = GUICreate("Spliter de Archivos Autor: DuNeD@i", 466, 149, 193, 124)
$Main = GUICtrlCreateGroup("Main", 8, 0, 449, 137)
$InputRuta = GUICtrlCreateInput("Ruta", 16, 20, 353, 21)
$Button1 = GUICtrlCreateButton("Buscar", 376, 18, 73, 25)
$Group2 = GUICtrlCreateGroup(" Megabytes ", 16, 48, 433, 81)
$InputTamanoArchivo = GUICtrlCreateInput("100", 32, 70, 89, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_NUMBER))
$rar = GUICtrlCreateCombo("rar", 32, 94, 89, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "jpg|doc|docx|exe|xls|mp3|mp4|pif|com|src|pdf|txt")
$Button2 = GUICtrlCreateButton("Partir", 129, 67, 63, 25)
$Button3 = GUICtrlCreateButton("Unir", 130, 91, 63, 25)
$Label1 = GUICtrlCreateLabel("Tamaño", 230, 72, 49, 17)
GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("000000", 280, 72, 90, 17, $SS_CENTER)
$Label3 = GUICtrlCreateLabel("Mb", 370, 72, 30, 17)
$Label4 = GUICtrlCreateLabel(@OSVersion & ' Compi: ' & @OSBuild & ' (' & @OSArch & ') [' & @OSServicePack & ']', 200, 96, 236, 17, $SS_CENTER)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Global $Open, $ValOpen
While 1
Local $Ru = GUICtrlRead($InputRuta), $In = StringInStr($Ru, ".", -1), $TFile = GUICtrlRead($InputTamanoArchivo)
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1 ;Abrir Archivo
Abrir()
$Label2 = GUICtrlSetData($Label2, CorDec(LongFile($Open)/1048576, 2))
Case $Button2 ;Dividir en trozos
Dividir($Ru, $TFile, 2)
Case $Button3 ;Unir
Juntar(StringMid($Ru, 1, $In + 3), GUICtrlRead($rar))
EndSwitch
WEnd
#cs ----------------------------------------------------------------------------
Function: Apertura de Dialog
#ce ----------------------------------------------------------------------------
Func Abrir()
$Open = FileOpenDialog("Abrimos el archivo a dividir", @DesktopDir,"Todos los archivos (*.*)")
GUICtrlSetData($InputRuta, $Open)
EndFunc
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.8.1
Author: DuNeD@i
Script Function: Determina el tamaño de un archivo
Uso: LongFile($File)
Ejemplo: LongFile(@DesktopDir & "\Bolita.exe")
#ce ----------------------------------------------------------------------------
Func LongFile($File)
Local $Binary, $Tam, $TamFinMsg, $Uni
$Binary = _WinAPI_CreateFile($File, 2, 2)
$Tam = _WinAPI_GetFileSizeEx($Binary)
_WinAPI_CloseHandle($Binary)
Return $Tam
EndFunc
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.8.1
Author: DuNeD@i
Script Function: Sirve para dividir un archivo en varios archivos de un deteminado tamaño, ejemplo archivos cortados con winrar (eo1.rar, eo2.rar,... eo24.rar)
Uso: Dividir(Ruta, Tamaño, Unidad(KB/MB))
Ejemplo: Dividir(@DesktopDir & "\Untitled.rar", 10, 2)
#ce ----------------------------------------------------------------------------
Func Dividir($Ruta, $Peso, $Unidad)
Local $File, $Long, $Tam, $TamFinMsg, $TamFinArcGen, $Info, $File1, $Lectura, $Binary, $BinaryResul, $Final, $Binary0, $Problem
$Tam = LongFile($Ruta)
If $Unidad < 1 Or $Unidad > 2 Then
Msgbox (1,'Error', 'Debes introducir "1" para dividir en Kb o "2" para dividir en Mb')
Exit
EndIf
If $Unidad = 2 Then ; Si están seleccionado Megas
$Long = $Peso * 1048576
$Problem = $Peso * 1048576
$TamFinMsg = $Tam / 1048576
$TamFinArcGen = Int($TamFinMsg / $Peso) +1
Else ; Si está seleccionado Kb
$Long = $Peso * 1024
$Problem = $Peso * 1024
$TamFinArcGen = Int($Tam / $Long)
EndIf
If $Tam >= $Long Then
$Binary = FileOpen($Ruta, 16)
$Lectura = FileRead($Binary)
FileClose($Binary)
$File1 = FileOpen($Ruta & "1", 1)
$Info = BinaryMid($Lectura, 1, $Long)
FileWrite($File1, $Info)
FileClose($File1)
For $i = 1 To Int($Tam / $Long)
sleep (300)
$Binary0 = FileOpen($Ruta & $i +1, 1)
$Final = BinaryMid($Lectura, ($i * $Long) + 1, $Long)
FileWrite($Binary0, $Final)
FileClose($Binary0)
If Contar_Archivos_Escritorio($Ruta, 1, 100) >= Int($Tam / $Long) + 1 Then
ExitLoop
EndIf
Next
;Sleep (2000)
If $Unidad = 2 Then
MsgBox(0,'Información', "Archivos Creados en: " & $Ruta & @CRLF & "Tamaño Archivo Original: " & CorDec($TamFinMsg, 2) & " Mb" & @CRLF & "Tamaño de Archivos generados: " & $Peso & " Mb" & @CRLF & "Número de Archivos generados: " & $TamFinArcGen)
Else
MsgBox(0,'Información', "Archivos Creados en: " & $Ruta & @CRLF & "Tamaño Archivo Original: " & $Tam & " Kb" & @CRLF & "Tamaño de Archivos generados: " & $Peso & " Kb" & @CRLF & "Número de Archivos generados: " & $TamFinArcGen)
EndIf
Else
MsgBox(0, 'Error', 'El Tamaño de los archivos a generar no puede ser mayor que el tamaño del archivo original')
EndIf
EndFunc
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.8.1
Author: DuNeD@i
Script Function: Sirve para juntar archivos con el mismo nombre pero con distinto índice, ejemplo archivos cortados con winrar (eo1.rar, eo2.rar,... eo24.rar)
Uso: Juntar(Ruta, Extensión)
Ejemplo: Juntar(@DesktopDir & "\archivo creado.rar","rar")
#ce ----------------------------------------------------------------------------
Func Juntar($Ruta, $Ext)
Local $Delta, $Final, $NumberFiles = Contar_Archivos_Escritorio($Ruta, 1, 100)
For $x = 1 To $NumberFiles
$Delta = FileRead($Ruta & $x)
$Final = RutaFile($Ruta) & "\Archivo_Creado" & "." & $Ext
FileOpen($Final, 1)
FileWrite($Final , $Delta)
$Delta = ""
FileClose ($Final)
Next
MsgBox(0,'Información',"Archivo creado satisfactoriamente" & @CRLF & "Gracias por utilizar esta aplicación" & @CRLF & "Autor: DuNeD@i")
EndFunc
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.8.1
Author: DuNeD@i
Script Function: Sirve para contar archivos con el mismo nombre pero con distinto índice, ejemplo archivos cortados con winrar (eo1.rar, eo2.rar,... eo24.rar)
Uso: ConsoleWrite(Contar_Archivos_Escritorio("Nombre del Archivo en trozos, Número del primer trozo, Número de Archivos a comprobar))
Ejemplo: ConsoleWrite(Contar_Archivos_Escritorio("Untitled, 1, 100))
#ce ----------------------------------------------------------------------------
Func Contar_Archivos_Escritorio($Ruta, $Ind, $NumFiles)
Local $Count, $Arc, $Count = 0
For $i = $Ind To $NumFiles ;Se puede subir el número de Archivos
$Arc = $Ruta & $i
If FileExists($Arc) Then
$Count += 1
Else
ExitLoop
EndIf
Next
Return $Count
EndFunc
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.8.1
Author: DuNeD@i
Script Function: Sirve para cortar decimales
Uso: ConsoleWrite(CorDec(Cadena Numérica Decimal, Numero de Decimales))
Ejemplo: ConsoleWrite(CorDec("456.5673433", 2)) --> Devuelve: 456.56
#ce ----------------------------------------------------------------------------
Func CorDec($Numb, $Dec)
Local $Alpha, $Beta, $Final, $Result
$Alpha = StringInStr($Numb, ".")
If $Alpha = 0 Then
Return $Numb
Else
$Beta = StringMid($Numb, 1, $Alpha)
For $x = 1 To 2
$Final = StringMid($Numb, $Alpha + $x, 1)
$Result = $Result & $Final
Next
Return $Beta & $Result
EndIf
EndFunc
#cs -------------------------------------------------------------------------------------------------------------------
AutoIt Version: 3.3.8.1
Author: DuNeD@i
Script Function: Devuelve el nombre de la ruta sin el nombre del archivo.
Uso: RutaFile($Ruta)
Ejemplo: MsgBox(0,'', RutaFile("C:\perverso\merlin\Acapulcodelosheuvos\mecagoentoloquesemenea.jpg") --> Devuelve C:\perverso\merlin\Acapulcodelosheuvos
#ce -------------------------------------------------------------------------------------------------------------------
Func RutaFile($Ruta)
Local $Name, $Final, $ppp
;$Ruta = @ScriptFullPath
$Name = StringInStr($Ruta, "\", 0, -1)
$Final = StringMid($Ruta, 1, $Name -1)
Return $Final
EndFunc