STEVE'S FILE SPLITTER v. 1.4
2001, by Steve D. Perkins


DESCRIPTION

	My file splitter application is a simple little app I put together over 
time to fill two needs.  I wanted to learn more about the Tcl/Tk 
programming language for use in graphical-application programming... and 
I got sick and tired of the old DOS-based splitter program I used up at 
the office when I needed to transfer a file too big for a floppy between 
two computers.  The command-line syntax was terribly non-intuitive (I kept 
having to explain to my co-workers over and over again how to use it), 
and you had to also have the same program on the other machine to put the 
split chunks back together again after transferring them.  Therefore, in 
typical programmer's fashion... I set about learning an entirely new 
language from scratch and putting a ton of hours into a project, in order 
to have a tool that might "make my life more simple"!

	I have tried to make this app as intuitive and user-friendly as 
possible.  There are only three fields of input:

"Input file":  The file that you would like split up.  This program does 
	not alter this original file in any way.

"Size of output chunks":  The number of bytes per "chunk" that you would 
	like the file split into.  If you check-mark the '3.5" Floppy Size'
	box, the chunks will be automatically sized for floppy disks...
	otherwise you can check-mark the 'Custom' box and type in a size
	manually (must be between 10,000 and 999,999,999 bytes).

"Path and basename for output files":  Select a path (i.e. 
	'c:\windows\desktop') that you would like the output chunks saved 
	to, as well as a basename for the chunks.  For example, if you 
	click the browse button, select the Desktop, and type in 'output' 
	in the 'Save As...' line... the app will create files on your 
	desktop titled 'output.1', 'output.2', etc.  

	An additional file will also be created called 'rejoin.bat'.  If 
you also copy this file over to the other computer and dump it in the same 
directory as the file chunks... clicking on this file will splice the file
chunks back into the original file's form.  Is does this using a 
seldom-used option in the DOS internal command 'copy'... which means that 
you DO NOT have to have the file splitter program also installed on the 
other machine.  It also means that the files can be merged back together 
on any machine... running Windows 2000 all the way down to the old versions 
of DOS.

	I hope you enjoy and find some use for this program... I always 
welcome any feedback, suggestions, and complaints... at 
'steve@steveperkins.net'.


NON-WIN32 PLATFORMS

   This release of File Splitter comes with the source code ('splitter.tcl') 
bundled in the package.  This script has no external dependencies or special 
requirements, and can be executed on any platform with Tcl 8.x or higher 
installed (i.e. Linux and most UNIX variants).  If you are using Linux or 
any other non-Win32 operating system, please consult your documentation for 
instructions on how to execute the 'splitter.tcl' script through a wish 
interpreter.  Note that File Splitter will still generate a REJOIN.BAT batch 
file intended for DOS-based rejoining, I hope to add to future releases 
the ability to perform rejoins on alternate platforms.


KNOWN ISSUES

- If a file uses a long filename (base name greater than 8 characters and/or
extention greater than 3 characters), splitting it will generate a 
REJOIN.BAT batch file incompatible with 16-bit operating systems.  If 
DOS and Windows 3.1 compatibility is crucial, you must temporarily rename 
files to fit the 8.3 filename format before splitting them.



FUTURE PLANS	

- Considering the idea of rewriting the next major revision (2.x) using 
native C++ instead of Tcl/Tk for performance.  

- Giving the ability to rejoin files using the File Splitter (while retaining 
the option of generating a batch file for machines that don't have File 
Splitter installed).

- Other suggestions/wish-lists are welcome!



VERSION HISTORY

- 0.1:  Bare-bones prototype... no GUI.  All file I/O performed one byte 
at a time.... very slowly.  Size of output chunks was a fixed constant, 
and it didn't yet create a 'rejoin.bat' batch file.

- 0.1-prerelease-1:  Added functionality to create the rejoining batch file.

- 0.1:  Buffered file I/O to read and write 1,000 bytes at a time, GREATLY 
boosting performance.

- 0.5:  Switched to Visual Tcl for development, plugged the core code 
into a graphical-user-interface.

- 0.6:  Added a 'Help' button with instructions for using the program.  
Took photo of myself from the main screen and tucked it out of the way on 
the 'About' window... so it wouldn't be TOO obnoxious!  <smile>

- 0.7:  FINALLY killed the bug that was causing the program to stay 
resident in memory when you close out the main window rather than use the
"exit" button.

- 0.8:  Changed the background to be in better-looking color, and added 
a logo image instead of a plain-text title.

- 1.0-prerelease-1:  Changed the graphic images to appear on label widgets 
instead of buttons (duh!).  Added error message windows to appear when the 
user selects an invalid input file, output basename, or chunk size.  
Increased the file I/O buffer to 10,000 bytes, which seems to be the most 
efficient size.

- 1.0:  Made the program 'smart' with regards to long filenames when 
creating the rejoining batch file.

- 1.1:  Created a check-mark box option to automatically size output chunks
for floppy disks, as well as the old option for manually selecting the size.
Created a confirmation window that pops-up when the splitting is complete.
Improved help screen for instructions.  "Compiled" with FreeWrap v. 3.2 
(1.0 was compiled with FreeWrap 3.1).

- 1.2:  Bug fixes.  Corrected abnormalities where windows did not take the 
foreground.  "Compiled" with FreeWrap 3.3 (uses tcl/tk 8.2 instead of 8.1).

- 1.4:  Modified file I/O blocking to generate a slight increase in speed. 
Fixed a bug causing invalid commands to occasionally be inserted in 
rejoining batch files.  Added a progress meter.  "Compiled" with 
FreeWrap 4.4, shrinking the executable size to less than half that of 
Version 1.2.


DISCLAIMER AND LICENSE

Steve's File Splitter, Version 1.4
Copyright (C) 2001 Steve D. Perkins 

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

View the GNU General Public License at http://www.gnu.org/copyleft/gpl.html
