Partir archivos como el hacha

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
joanfran55
Mensajes: 16
Registrado: 09 Mar 2009, 02:10

Partir archivos como el hacha

Mensaje por joanfran55 »

Hola a todos.

Pues eso, quería saber si existe alguna manera, más o menos sencilla de hacer un script que me permita dividir un archivo en partes con la extensión y tamaño que yo elija, y a la inversa: a partir de esos archivos ya creados, volverlos a unir para obtener el archivo inicial.

Vamos, lo que hacer el hacha pero con un script propio.

Simplemente saber si hay alguna funcion para split archivos y para join archivos, lo demás supongo que me lo podré apañar yo.

Gracias por vuestra ayuda
Avatar de Usuario
gna08
Hacker del Foro
Mensajes: 379
Registrado: 27 Sep 2008, 18:51
Ubicación: Cordoba, Argentina

Re: Partir archivos como el hacha

Mensaje por gna08 »

Pues.. no exactamente una funcion k diga "tecortoelarchivo(XXXXXX;XXXX)" Pero dispones de las herramientas para dicha operacion..
como poder leer el archivo en modo binario, y con fucioes como FileGetSize para saer el tamaño, y con un par de calculos matematicos y usando algunas funciones de string, etc.. y con filewrite vas escribiendo las partes-..
Esto es un decir.. ahi ponerlo en practica.. revisa la ayuda.. y cuando te ataskes con algo te vamos tirando una mano :smt023
Si no sabes por donde empezar tambiien lo decis :smt023
Aunk no m Buskes, Seguro m enkontras!
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Partir archivos como el hacha

Mensaje por Chefito »

Yo tengo hecha la función desde marzo :smt003 , pero no la he colgado.......ni la voy a colgar aun :smt004 . Es que pertenece a un proyecto que tengo a medio. Se trata de algo parecido al hacha. Lo que pasa que mi proyecto también encripta los trozos con una contraseña.
También quiero que se junte directamente sin necesidad del programa, haciendo un poco de trampilla :smt003 . Ahí es donde me atasqué en marzo, y me puse con otras cosas y lo dejé.
Ya que a salido el tema voy a intentar acabarlo y colgarlo. Un poco de paciencia.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
XPyro
Profesional del Autoit
Mensajes: 542
Registrado: 04 Mar 2007, 10:12
Ubicación: México
Contactar:

Re: Partir archivos como el hacha

Mensaje por XPyro »

mira chefito que esperare con ansias ese script :smt003

yo e usado otro programa que se llama HJSplit y trae una command-line versión que te podría servir :smt006
http://www.freebyte.com/hjsplit/#classic
Imagen
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Partir archivos como el hacha

Mensaje por Ximorro »

Mientras esperamos estas utilidades siempre puedes coger el WinRAR o 7Zip, por ejemplo, y comrimir en fragmentos. Encima te ocupará menos ;-)
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
joanfran55
Mensajes: 16
Registrado: 09 Mar 2009, 02:10

Re: Partir archivos como el hacha

Mensaje por joanfran55 »

He encontrado esto por ahi, pero por lo que sea, no funciona, si divido un archivo de 600 megas en partes de 100 megas me da 6 archivos de 1,8 Megas, y al juntarlos me da uno de 11 megas, por lo que el archivo inicial no se corresponde. Debe haber un error tonto que no soy capaz de encontrar, aunque seguiré buscando, pero si me podéis ayudar vosotros que pilotáis más...
Adjuntos
split.rar
(4.44 KiB) Descargado 154 veces
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Partir archivos como el hacha

Mensaje por Ximorro »

Vale, creo que he encontrado el problema.
Me estaba volviendo majareta porque con archivos pequeños, si el tamaño de partición era menor que 20000bytes sí funcionaba.
Estaba haciéndome trazas y todo era correcto (lo del 20000 es porque si el tamaño a partir es mayor que eso hace sub-partes para guardar cada parte, también he analizado el proceso que hace en ese caso y está bien).

Pero luego se me ha ocurrido que el problema es que ¡NO ESTÁ LEYENDO EN BINARIO!. Por defecto FileRead y FileWrite leen y escriben en modo carácter. Por eso me funcionaba con los pequeños, porque le pasaba archivos de texto (en concreto fuentes de AutoIt) ;-) ) Para procesar cosas más grandes le pasaba ejecutables EXE, que claro, no son archivos de texto, ¡y contienen por medio caractares de finalización de fichero!. Esto indicaría finalización en texto, pero no en binario. Como FileRead lee hasta el número de caracteres que se le pasan o hasta el final del archivo, cuando encuentra un carácter de final de archivo de texto finaliza, aunque se trata de un carácter cualquiera en medio de un archivo binario. Lo mismo pasa con FileWrite escribiendo.

Por eso los tamaños son tan pequeños. Pero es que aunque el tamaño estuviera bien, ni te cuento las transformaciones que está haciendo al supuesto texto en los retornos de carro o las codificaciones de caracteres, o sea que aunque tomara bien los tamaños tampoco escribe exactamente el archivo original, y al juntarlo tendrías un archivo corrupto.

Solución: en todos los FileOpen y FileWrite (¡no FileOpenDialog!) indicar modo binario, sumando 16 al parámetro del modo, por ejemplo
$Open_File = FileOpen($Source, 0) hay que pasarlo a $Open_File = FileOpen($Source, 16)
Y así $Save_File = FileOpen($Output_File, 10) hay que pasarlo a $Save_File = FileOpen($Output_File, 26)

Adjunto la versión modificada, he probado un exe y funciona. No he probado archivos gigantes pero seguro que era esto.

Una cosa, podrías indicarnos de dónde lo sacaste para que les digamos el bug que tienen...

Saludos
Adjuntos
split.rar
Versión modificada para archivos binarios
(3.82 KiB) Descargado 157 veces
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
joanfran55
Mensajes: 16
Registrado: 09 Mar 2009, 02:10

Re: Partir archivos como el hacha

Mensaje por joanfran55 »

Narices!! Enhorabuena, genio. El caso es que algo así estaba pensando yo.

Muchisimas gracias!

COmo poder decirlo lo puedo decir, y si supiera yo mismo les avisaría de su bug, pero mira de donde lo he sacado, no sé quien lo ha publicado:

http://www.autoitscript.com/forum/index ... h_id=13794

Creo que es el foro en inglés, buscaré ese post y, yo que estoy registrado, le avisaré sobre su error (o si te hace ilu lo haces tu que pa eso has sido tú el que lo ha sacado).

Gracias de nuevo
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Partir archivos como el hacha

Mensaje por Ximorro »

De nada, un placer ser de ayuda.

Así rápido no lo encuentro, así que si lo encuentras tú pues se lo dices, eso sí, sería un detalle que me nombres en los "credits" ;-)

Ese no lo he encontrado, pero he encontrado este que tiene aún mejor pinta. Mira el pantallazo que pone, se ve muy completo. Desgraciadamente los links están rotos, a ver si lo vuelven a poner...
http://www.autoitscript.com/forum/index ... ntry742805

O vaya, por aquí decían que estaban haciendo uno, seguramente será de calidad similar que por aquí se lo curran mucho...
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Partir archivos como el hacha

Mensaje por Ximorro »

Por cierto Chefito, no sé si ya lo tenías pensado pero en tu programa de hacha sería una opción interesante comprimir las partes con las librerías públicas de ZIP. Por ejemplo aquí tienes una UDF:
http://www.autoitscript.com/forum/index ... t&p=556133

Aquí también hay uno para unrar, aunque diría que sólo descomprime...
http://www.autoitscript.com/forum/index ... t&p=551866

Con esto encima tienes ya soporte para encriptación o protección con contraseña, por si no quieres currártelo desde cero ;-)

Y ahora que lo veo... ¡el creador de las DOS udf y el programa de splitter que he puesto antes es el mismo rasim!... qué casualidad, y qué máquina...
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Partir archivos como el hacha

Mensaje por Chefito »

Jejejeje......lo primero que voy ha deciros es que no voy a mirar el código que habeis puesto para partir archivos. Voy a trabajar sobre mi función y quiero que el código sea todo mio....sin ideas :smt005 (por lo menos en este tema).

Gracias por poner esos enlaces y darme ideas :smt002 . La verdad, se me ha pasado por la cabeza poner un soporto para comprimir archivos en zip, pero no con esa librería. Tengo por aquí bajada la zlibwapi.dll. La zlib lleva ya bastante tiempo rulando por ahí. La web oficial: http://www.zlib.net/
Pero no se si hacerlo, ya que lo que pretendía era solamente cortar archivos. Por que? Porque lo pensé enfocado para cortar películas y videos que ya están comprimidos con sus codec y no se comprimen más :smt002 . Al no tener que comprimir se ahorra en tiempo al cortar los archivos.
Lo de la encriptación.....podría usar una librería para eso, incluso alguna api de win, pero tengo una pequeña idea en la cabeza para hacer una sencilla compresión mía. Es muy simple y no es muy segura, pero quiero poner la idea en práctica a ver que sale :smt003 .
Lo del rar...mmmm.....supongo que sea solo para descomprimir archivos, ya que que yo sepa, la compresión rar no es libre ni gratuíta (puede que esté equivocado). No se si la librería zlib tendrá la posibilidad de descomprimir otros formatos.....no la he estudiado aun.

Aaahhhh....y sí, rasim es una máquina. En lo poco que he participado en el foro de habla inglesa, en una duda que tube bastante complicada de resolver, el me dio buenas ideas :smt024 .

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Partir archivos como el hacha

Mensaje por Ximorro »

Hombre, como seguramente harás un GUI de esos que tiran de culo, puedes añadir una opción para comprimir, así el programa es más general. Si alguien va a partir algo que no se va a comprimir (como los videos que dices) pues no marca la opción. Si es algo que se puede comprimir (una imagen ISO por ejemplo) pues se marca.

Se me ocurre que tampoco es prioridad, porque siempre puede uno comprimir primero lo que quiere partir, y luego partirlo ;-) pero si ya va con el programa te ahorras el paso...
Podrías probar, si no es mucha faena, con la udf esa del ZIP, si es cómoda de usar será rápido, más adelante con más calma puedes ponerte a pasarlo a llamadas a pelo a la librería esta que dices. Es sólo una idea.

¿Lo de la encriptación implica que no podremos ver el código...? noooooo
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Responder