Category: | utility script |
Author/Contact Info | tomas cebrian tomas.cebrian@terra.es |
Description: | I have a very slow connection at home, but I have access to adsl elsewhere, so I can download demos and big programs. Hopeless, there isn't a cdrecorder there, so I have to split this files into smaller ones that fit into my 64 mgs stick memory. And this is what "korta" script do. Split files and join them at home. |
# # nombre: korta.pl # script: 1 agosto 2005 # program: tomas cebrian # # I have found this script usefull to carry demos from a computer w +ith internet # to another without. I have only a 64 mgs of memory stick, so I h +ave to # split a big file into parts, and carry them one by one. # # Utilizo este script para llevar demos de un ordenador con interne +t a otro # sin él. Tengo un cacharro de esos de memoria usb de 64 mgs, ento +nces tengo # que partir la demo en partes y llevarlas en veces de un sitio a o +tro. # # Hasta que me compre una memoria maaaaas grande, esto me va bien # # Until I buy a bigger memory stick, it works well for me. # ENGLISH # splits a file into several tmp files, tmp0.tmp tmp1.tmp # using the option "-partir" # joins tmp files into the original, using the option "-juntar" # use: perl korta.pl [-partir][-juntar] file [-tbytes] # if the option -t(bytes) is not used, the file will be splitted # into files of 1.400 bytes, to fit into a floppy # the argument "file" is necesary for the input and for the output +as well. # SPANISH # divide un archivo en varias partes tmp0.tmp, tmp1.tmp... # con el argumento -partir. # auna los archivos temporales en el archivo original con # el argumento -juntar # uso: perl korta.pl [-partir][-juntar] archivo [-tbytes] ([-to +ctetos]) # si la opción -t(bytes) no se usa, el archivo se dividirá en # partes de 1.400 bytes para que quepan en un floppy # el argumento "archivo" es necesario tanto para la entrada como pa +ra la salida # Just one more thing: I'm not a programmer, I'm only a Carterpi +llar driver, so # excuse my big errors (sure there're), and if you want to improve +the script, or # correct me, please do it. I'm at tomas.cebrian@terra.es # Solo una cosa mas: No soy programador, yo conduzco una palera +en un almacén de # cereales, así que intentad perdonar los errores que haya, y si qu +ereis corregirme, # o mejorar el script para vuestro uso, hacedlo, por favor. Estoy e +n tomas.cebrian@terra.es my %hash; my $parte; my @array; my $nro_parte=0; $MAX_SIZE_PART=1400; my $file=$ARGV[1]; # cambiando el tamaño maximo de los archivos temporales # changing max size of tmp files if(($ARGV[2]=~m/-t/)==1){ $MAX_SIZE_PART=substr($ARGV[2],2); } my $nro_files=0; # una tontada para saber el tamaño del archivo # nonsense to know the file size if($ARGV[0]eq"-info"){ $len=length($file); print $len."\n"; exit 1; } # por si acaso se le ocurre a alguien # maybe someone could try it if($ARGV[0]eq"-h" || $ARGV[0] eq "-help"){ print "Uso: perl -w korta.pl [-info] [-partir] [-juntar] archivo +-t(maximo tamaño del bloque\n"; print "Por defecto partira los archivos en partes que ocupen un fl +oppy\n\n"; exit 1; } # si queremos partir # if we want to split if($ARGV[0]eq"-partir"){ open(INPUT, "$file")||die "$!\n"; binmode INPUT; while(read(INPUT, $parte, $size)){ push @array,$parte; if($nro_partes>$MAX_SIZE_PART){ open(OUTPUT,">tmp$nro_files.tmp")||die "$!\n"; binmode OUTPUT; $_=join('',@array); print OUTPUT $_; close(OUTPUT); undef @array; $nro_partes=0; $nro_files+=1; } $nro_partes+=1; } open(OUTPUT,">tmp$nro_files.tmp")||die "$!\n"; binmode OUTPUT; $_=join('',@array); print OUTPUT $_; close(OUTPUT); close(INPUT); exit; } # y para juntar # and for join if($ARGV[0]eq"-juntar"){ $final=$ARGV[1]; my @files=<*.tmp>; foreach$file(@files){ open(INPUT,"$file")||die "$!\n"; binmode INPUT; while(read(INPUT, $chunk,$size)){ push @farray, $chunk; } close(INPUT); } open(OUTPUT,">$final")||die"$!\n"; binmode OUTPUT; $_=join '',@farray; print OUTPUT $_; close OUTPUT; exit; } # si solo escribimos en la linea de comandos "perl korta.pl", verem +os esto y saldremos del script # if we only type in the command line "perl korta.pl", we'll see th +iw and exit from the script print "Uso: perl korta.pl [-info] [-partir] [-juntar] archivo -t(maxi +mo tamaño del bloque)\n"; print "Por defecto partira los archivos en partes que ocupen un fl +oppy\n\n\n"; exit 1; 2005-09-20 Retitled by g0n, as per Monastery guidelines |
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: korta - split large files
by jdporter (Paladin) on Sep 20, 2005 at 12:29 UTC | |
by Roy Johnson (Monsignor) on Sep 20, 2005 at 14:20 UTC | |
Re: korta - split large files
by graff (Chancellor) on Sep 20, 2005 at 16:56 UTC | |
by Anonymous Monk on Sep 21, 2005 at 10:52 UTC | |
Re: korta - split large files
by monarch (Priest) on Sep 20, 2005 at 13:41 UTC | |
Re: korta - split large files
by elwarren (Priest) on Sep 21, 2005 at 21:04 UTC |
Back to
Code Catacombs