'=========================================================================== ' Subject: FILE SPLITTER Date: 08-30-00 (14:48) ' Author: Jeremiah Hyde Code: QB, QBasic, PDS ' Origin: fishoffire@yahoo.com Packet: MISC.ABC '=========================================================================== 'PPPPPP 'PP PP 'PP PP rr rrr oooo ggg gg rr rrr aaaa mm mm eeee rr rrr zzzzzz 'PPPPP rrr rr oo oo gg gg rrr rr aa mmmmmmm ee ee rrr rr z zz 'PP rr rr oo oo gg gg rr rr aaaaa mmmmmmm eeeeee rr rr zz 'PP rr oo oo ggggg rr aa aa mm m mm ee rr zz z 'PP rrrr oooo gg rrrr aaaaa mm mm eeee rrrr zzzzzz ' ggggg ( /\__________/\ ) ' \(^ @___..___@ ^)/ ' ########### /\ (\/\/\/\/) /\ ' # ___ ___ # RRRRR lll !! !! / \(/\/\/\/\)/ \ ' { (0) (0) } RR RR ll !!!! !!!! ( """""""""" ) ' | P | RR RR uu uu ll zzzzzz !!!! !!!! \ _____ / ' \ \___/ / RRRRR uu uu ll z zz !!!! !!!! ( /( )\ ) ' \_____/ RR RR uu uu ll zz !! !! _) (_V) (V_) (_ ' Jeremiah "BJ" RR RR uu uu ll zz z (V)(V)(V) (V)(V)(V) ' Hyde RR RR uuu uu llll zzzzzz !! !! My dog Smokey, ' aka Stupid Mutt ' ' This code released under the GNU General Public License. This means you ' can use it, compile it, pass it around, modify it, WHATEVER! However, ' if you do this, I will expect notification and a copy of whatever you've ' done, unless it's a virus, or breaking into the CIA, etc. ' Jeremiah "BJ" Hyde 'E-Mail me at: fishoffire@yahoo.com fishoffire Industries: ' Visit me at: www.fishoffire.com Your source for ' EVERYTHING QBasic 'Note: ' This code has been tested on my machines: ' ASUS TX97x WOA: AMD K6-266, 160MB RAM, 20.5 GB HD, 15" PnP(SVGA+) Monitor, ' Win98 DOSBox ' AT&T Globalyst 520: Intel 486 DX 66mhz, 19MB RAM, 14" SVGA Monitor, ' Win95 DOSBox ' Compaq Deskpro 4/33i: Intel 386 33mhz, 4MB RAM, 14" SVGA Monitor, ' MS-DOS 6.22/Win3.11 ' and has run correctly under those environments. However, no guarantee, ' warranty, or any other declaration of safety, etc. is offered. If your ' computer system is taken over by smurfs, or the ROM is RAMed, or ' anything else of a detrimental nature happens to your PC as a result ' of this code, I am *not* responsible for it. The full burden of blame ' rests squarely on your shoulders.(Of course, if something GOOD happens to ' your computer as a result of this code, well, obviously, I did it!) ' ------------- ' In other words: You're on your own, pal! ' ' This is just something I threw together in about 20 minutes, so ' no comments about my (lack of) programming skill. Anyway, what ' this does is, it splits a file up into chunks. This is highly ' useful if you have to transport some massive file on floppies. ' (Ex: Internut Exploiter 5). Hav Phun. DEFDBL A-Z SHELL "DIR /-W/A-S/P/O" INPUT "Enter filename: ", FileName$ OPEN FileName$ FOR BINARY ACCESS READ AS #1 FileLen = LOF(1) IF FileLen = 0 THEN CLOSE 1: PRINT "Bad filename!": END INPUT "Enter chunk size: ", ChunkSize IF ChunkSize < 1 OR ChunkSize > FileLen THEN CLOSE 1: PRINT "Bad chunk-size!": END NumPackets = FIX(FileLen / ChunkSize) IF NumPackets * ChunkSize < FileLen THEN NumPackets = NumPackets + 1 FOR i = 1 TO NumPackets num$ = RIGHT$("000" + LTRIM$(STR$(i - 1)), 3) OPEN "SPLIT." + num$ FOR BINARY ACCESS WRITE AS #2 PRINT "Writing chunk" + STR$(i) + " "; k = ((i - 1) * ChunkSize) IF FileLen - k < ChunkSize THEN PRINT "PARTIAL "; FOR j = 1 TO ChunkSize STEP 1024 IF ChunkSize > 1024 THEN IF (j MOD (ChunkSize \ 1024)) = 0 THEN PRINT "."; END IF END IF A$ = SPACE$(1024) IF (ChunkSize - (LOC(1) - k)) < 1024 THEN A$ = SPACE$(ChunkSize - (LOC(1) - k)) IF (FileLen - LOC(1)) < 1024 THEN A$ = SPACE$(FileLen - LOC(1)) GET #1, k + j, A$ PUT #2, j, A$ IF j + 1024 > FileLen THEN EXIT FOR NEXT j PRINT "Done!" CLOSE #2 NEXT i CLOSE #1 PRINT PRINT "Done!!!"