home *** CD-ROM | disk | FTP | other *** search
- SPLIT & UNSPLIT
-
- Big File SPLITting and UNSPLITting Utilities
-
- By
-
- Joseph M. Morgan
- SPLIT & UNSPLIT
- Table of Contents
-
- Copyright and User Information . . . . . . . . . . . . . . . . 1
-
- Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . 2
-
- SPLIT - Large File Splitting Utility . . . . . . . . . . . . . 3
- Purpose . . . . . . . . . . . . . . . . . . . . . . . . . 3
- Requirements. . . . . . . . . . . . . . . . . . . . . . . 3
- SPLIT - How To Do It. . . . . . . . . . . . . . . . . . . 4
- What SPLIT Does . . . . . . . . . . . . . . . . . . . . . 4
-
- UNSPLIT - Large File UnSplitting Utility . . . . . . . . . . . 5
- Purpose . . . . . . . . . . . . . . . . . . . . . . . . . 5
- Requirements. . . . . . . . . . . . . . . . . . . . . . . 5
- UNSPLIT - How To Do It. . . . . . . . . . . . . . . . . . 5
- What UNSPLIT Does . . . . . . . . . . . . . . . . . . . . 5
-
- INFO On Both Programs. . . . . . . . . . . . . . . . . . . . . 6
- Installing. . . . . . . . . . . . . . . . . . . . . . . . 6
- History & Direction . . . . . . . . . . . . . . . . . . . 6
- Future Support. . . . . . . . . . . . . . . . . . . . . . 7
- Cost & Registration . . . . . . . . . . . . . . . . . . . 8
- Copyright and User Information
-
- These programs and this documentation is the property of
- Joseph M. Morgan. You may freely copy and distribute this software
- and its documentation for non-commercial and non-governmental use
- as long as for any given program, the program and it's
- documentation are copied and distributed together. You may not
- distribute the software without the documentation or the
- documentation without the software.
- Please send all suggestions, inquiries, and other
- correspondence to:
-
- Joseph M. Morgan
- 9045 Kingston Rd. #102
- Shreveport, LA 71118-3400
- Disclaimer
-
- These utilities, their associated documentation and the media
- on which they are distributed are distributed as is, with no
- warranty either explicit or implied. Even though every attempt has
- been made to provide high-quality, accurate information, this
- documentation may contain omissions or errors. There is no
- guarantee, either explicit or implied, that this program will work
- properly on any given computer.
- In no event shall Joseph M. Morgan be held liable in any way
- for any damages of any kind to include lost profits of any amount,
- lost savings of any amount, or other incidental or consequential
- damages of any kind arising, for any reason, from the use, misuse,
- or inability to use these utility programs and/or their associated
- documentation even if Joseph M. Morgan has been advised of the
- possibility or occurrence of such damages.
- If the program is defective in any way, you, the user, assume
- all responsibility and costs of all necessary repairs and/or
- adjustments and/or servicing of any kind. The distribution rights
- and, if applicable, registration cost are all subject to change or
- withdrawal without prior notification of any kind. The contents of
- the program documentation may be in error or inaccurate and,
- therefore, is subject to change at all times without prior
- notification of any kind.
- If you, the user, reside in an area where local laws of any
- kind including city, county or parish, state or other local laws
- that either explicitly or implicitly require Joseph M. Morgan to
- bear responsibility or liability of any kind resulting from the
- use, misuse, or inability to use these programs and their
- associated documentation, you, the user, are hereby not allowed to
- use these programs or their associated documentation, or any other
- program and/or its associated documentation produced by Joseph M.
- Morgan for any reason or purpose on any computer or equipment
- either owned or not owned by you, the user.
- Use of any one of these programs constitutes full agreement
- with the conditions of this disclaimer by you, the user, and you
- hereby accept all responsibility for use of these programs and
- their associated documentation.
- SPLIT - Large File Splitting Utility
-
- Purpose
-
- The reason I wrote SPLIT was because we despise using the DOS
- BACKUP utility to copy a single large file from one computer to
- another. Typically, we will use a compression utility to compress
- an entire directory, or entire directory tree, into one file.
- Usually, however, this file is too large to fit on one 1.44MB or
- 1.2MB floppy.
- Plus, have you ever tried using BACKUP on a DOS version 5.0
- system and restoring on a DOS version 2.11 system? It can't be
- done folks!
- Also, have you ever been in the middle of a backup and run out
- of 1.44MB disks, and had a stack of 1.22's just sitting around
- waiting to be used? But, you also knew that the 1.22s alone
- wouldn't be enough? Try changing drives in mid-stream? It can't
- be done!
- You ever run out of blank disks and tried to continue your
- backup onto a good disk that contained needed files? OOPS!
-
- Well, SPLIT is the answer. SPLIT will take any single file,
- and write it to multiple diskettes (or even multiple hard-drives if
- you want, though you'd probably never want), even if the diskettes
- are being used by other files.
- No control files are written. No version formatting
- requirements. And SPLIT doesn't care which version (or
- manufacturer) of DOS you might be using. SPLIT will also allow you
- to change diskette drives and sizes on the fly! So you can start
- with a 1.44MB and then go to a 1.22MB, then a 720K or 360K, and
- back to a 1.44.
- Note that during testing, I couldn't find a 320K, 180K or 160K
- diskette, so I don't know for an absolute fact that these will
- work. But if your computer and version of DOS will read and write
- to one of these kinds, I see no reason why SPLIT wouldn't work with
- them.
-
- Requirements
-
- SPLIT requires DOS 2.11 or higher to work. SPLIT doesn't
- check the version, and I don't know if it will work on a version
- earlier than that, but I trust my compiler's technical
- documentation, and I couldn't find a computer running anything less
- than 2.11 on which to test it!
- If you're using some version earlier than that, try it. If it
- works, the first thing to do is to let me know. At the very least,
- I can correct my documentation. The next thing you need to do if
- you're using a DOS version less than 2.11 is to UPGRADE!!!
- Hopefully, you have a hard drive and need to copy a file
- larger than your largest diskette capacity from one computer to
- another. But there is no reason that you couldn't use a floppy-
- only system to SPLIT a 400K file on a 720K diskette across multiple
- 360K diskettes.
-
- SPLIT - How To Do It
-
- With all utilities I write, you get help by entering the
- program with no arguments on the command line. What you see is a
- Reader's Digest version of this documentation.
- SPLIT requires at least two command line arguments:
-
- split [/r] parent_file_name target_drive
-
- The "parent_file_name" is any valid DOS file name. "target_drive"
- is the drive to which you wish to begin SPLITting. SPLIT allows
- you to change drives in process, but it wants to know where to
- begin.
- The optional switch "/r" tells SPLIT to automatically replace
- any existing child files on your target diskette(s). This function
- is basically for re-SPLITting a file to the same diskette(s) as a
- previous SPLIT. Normally, SPLIT finds one of it's children and
- tells you it's there. Then it asks permission before writing over
- it.
-
- What SPLIT Does
-
- SPLIT begins by locating your parent file. Then it looks at
- your target drive and crams as much of the parent as it can onto
- that disk or diskette. Then it tells you it is time to continue.
- This is where you can change drives. To stay on the same drive,
- change diskettes and press [ENTER]. Otherwise, enter the letter of
- the drive you want to go to next.
- SPLIT continues this process until the entire parent file has
- been written. SPLIT also enters some code into each child file to
- let UNSPLIT know how to UNSPLIT it. See "What UNSPLIT Does" below
- for more information on UNSPLIT.
- Please note that you DO NOT have to have a fresh diskette in
- the drive. SPLIT WILL NOT overwrite existing files on your
- diskette UNLESS it is an older child of the existing parent file.
- Also note, however, that you DO have to have your diskette pre-
- formatted, as SPLIT WILL NOT format your diskette(s) for you. (See
- "History & Direction" below for possible changes to this rule.)
- While SPLIT is doing it's job, it gives you two percentages.
- The first percentage is the percent of completion of the current
- child being written. The second percentage is the percent of the
- completion of the entire process.
-
- UNSPLIT - Large File UnSplitting Utility
-
- Purpose
-
- Obviously, the purpose of UNSPLIT was to get back what SPLIT
- created (or un-created, whichever way you want to look at it!). If
- you haven't already, read about the purpose of SPLIT above.
-
- Requirements
-
- UNSPLIT requirements are the same as SPLIT. See
- "Requirements" above under SPLIT's stuff.
-
- UNSPLIT - How To Do It
-
- With all utilities I write, you get help by entering the
- program with no arguments on the command line. What you see is a
- Reader's Digest version of this documentation.
- UNSPLIT requires at least one command line argument:
-
- unsplit [/r] [drive:]child [target_drive:[path]]
-
- The "child" file name only actually needs to be the root file name
- of the name of the original parent file. When SPLIT does it's job,
- it names the first child "`parent_file_name'.0". All you really
- have to give UNSPLIT is "parent_file_name". You don't have to, but
- you should include the drive on which the first child exists. You
- will be able to swap drives and diskettes during the process, but
- UNSPLIT needs to know where to begin.
- Now, it is my recommendation that you get into the directory
- on your hard drive where you want the UNSPLIT version of your
- parent file to be. Then, enter the UNSPLIT command with a
- drive:child combination. Since it is possible to swap drives
- during the SPLIT, you wouldn't want to execute UNSPLIT with a
- floppy as your default drive. (Not that it should hurt, mind you.)
- The optional "target_drive:[path]]" tells UNSPLIT where to put
- the original parent file if it is not the current drive and
- directory. Otherwise, UNSPLIT writes the parent file to where you
- are when you execute it.
- The optional switch "/r" tells UNSPLIT to automatically
- overwrite the existing parent if it exists. By default, UNSPLIT
- asks your permission before overwriting an existing parent.
-
- What UNSPLIT Does
-
- UNSPLIT looks for your first child file. Once found, it looks
- for a file with the same name as the parent file name contained
- within special code in the first child file. If that parent
- exists, UNSPLIT asks permission to overwrite it unless you give it
- the /r switch.
- UNSPLIT then reads the child file from the diskette, and, when
- that's done, UNSPLIT knows to tell you to insert the next diskette
- if there is another to insert. Please note that, though UNSPLIT
- can tell which is the next child to read, it cannot tell you which
- drive that child needs to come from. Therefore, if you swapped
- drives during the SPLIT operation, number those diskettes so you
- can reinsert them in the proper order and change drives when
- necessary.
- (During coding for this latest version, I was going to have
- SPLIT record the next drive to accommodate UNSPLIT. But, this
- would have meant lots of diskette swapping. That was so unfriendly
- to the user, that I dropped the idea and put a little bit of the
- responsibility back on the user.)
- UNSPLIT continues UNSPLITting until all children have been
- read and then entire parent has been recreated.
- While UNSPLITting, UNSPLIT looks at the date and time stamp on
- each child for the date and time stamp of the original parent.
- This prevents you from accidentally sticking a child of a previous
- SPLIT in the place of the child you actually need. UNSPLIT warns
- you if it finds a child that doesn't belong to the proper parent,
- and prompts you either to continue, or replace the diskette with
- the one containing the proper child.
- Like SPLIT, while UNSPLIT is doing it's job, it gives you
- percentages telling you the relative completion of the stages of
- it's work. The first percentage is relative to the reading of the
- child. The second percentage is relative to the completion of the
- creation of the parent.
-
- INFO On Both Programs
-
- Installing
-
- When you get these programs, there is no installation utility.
- In fact, SPLIT and UNSPLIT are ready to run (unless, of course, you
- haven't un-archived them from the BBS or service from which you
- downloaded them). Just copy them into a directory that your PATH
- command includes. Look in your DOS manual(s) for more information
- on what PATH does.
-
- History & Direction
-
- Like all other utilities I write, I first wrote SPLIT and
- UNSPLIT because we needed something like it where I work. We would
- compress a file with vise-grips, but couldn't seem to get some of
- them small enough to copy from one computer to another.
- The first version of SPLIT and UNSPLIT wouldn't even copy the
- child files to the diskette for you. You had to SPLIT them to your
- hard drive, then copy them, one at a time, to a floppy. The same
- with UNSPLIT. You had to copy from the floppies one file at a
- time, then UNSPLIT them.
- The next version offered the enhancement of copying the files
- for you, but there was still the limitation of having to tell SPLIT
- what kind of floppies you were using. And, inevitably, someone
- around here ran out of their 1.2MB floppies SPLITting a file one
- day, and we scrambled for disks, realizing if we could just tell it
- to swap drives and go to the 1.44MB drive, we'd be OK.
- Now, SPLIT figures it out for you. You can switch drives and
- diskette sizes until you are blue in the face. We've even SPLIT
- files as large as a couple hundred megabytes to 40MB Bernoulli
- cartridges!
- At the time I finished programming SPLIT and UNSPLIT for this
- latest version, I thought that I might expand it to include
- compression and all the little goodies those utilities offer. But,
- that would be reinventing the wheel. So, since the
- Shareware/Freeware market offers the best in compression utilities,
- I wont attempt to compete with their products.
- I still plan to expand SPLIT to include multiple file
- specifications and recursive directory searches across multiple
- drives. A colleague of mine even made the brilliant suggestion of
- providing a command file so that you could provide a list of file
- specifications and multiple drives and media to SPLIT.
- Another enhancement might be to format unformatted floppies,
- but I haven't decided whether to actually format the diskette
- myself or to drop out and let your DOS do it for me (and you!). I
- have all of the stuff in SPLIT to do it, as SPLIT grabs INT 24h
- (for you technical people!), letting me know the diskette drive
- status. But I just don't know if I want to actually do the
- formatting myself.
- The next version of SPLIT will verify that, if you are re-
- SPLITting, the parent file you are splitting was last written at a
- date and time LATER than the date and time it was written during
- the last SPLIT. This will save you time and trouble if you either
- forgot that you had already SPLIT the latest version of a file, or,
- if you somehow attempt to SPLIT and OLDER version of a file to a
- newer SPLIT version of the same file.
- Any other suggestions would be appreciated. This is one of my
- pet projects. Every time I get a useful suggestion, I attempt to
- employ it.
-
- Future Support
-
- Future support of enhancement requests for SPLIT and UNSPLIT
- will depend upon the number of people who respond to me regarding
- their use of these programs. YOU DO NOT HAVE TO REGISTER OR PAY ME
- A DIME TO USE THIS SOFTWARE (Of course, if you feel generous ...).
- But, please, let me know how you are using the software, what you'd
- like to see it do, etc., etc. You can write to me at the address
- above or below.
- Basically, the more people who actually use it, the more
- demand I will see, and I will continue to support it. If enough
- people think my stuff is useable, I might just go ahead and shrink-
- wrap it! But, for right now, I want to be able to deliver the kind
- of stuff we have found we have needed to the rest of the world.
-
- Cost & Registration
-
- There is no cost or registration for SPLIT and UNSPLIT. I am
- distributing the programs and this documentation as FREEWARE!!!
- This is how I want to make my mark.
- Now, THIS is how I want to make my money. I will sell the
- COMPLETE C SOURCE CODE for BOTH programs for $25.00. Just send a
- request and $25.00 to me at:
-
- Joseph M. Morgan
- 9045 Kingston Rd. #102
- Shreveport, LA 71118-3400
-
- Checks and cash and things that can be turned into cash will
- be accepted. No credit cards please. (Of course, if you'd like to
- send my kids to college or buy me a new house, I'll accept that
- too!)
- Be sure to include your return address and the kind of
- diskettes you want. I will send it the day I receive payment. You
- will receive a package with the latest executable versions of SPLIT
- and UNSPLIT, the latest C source code both printed AND on the
- diskette type and size you request.
- I'll hang on to your address so that if we discover a small
- bug or some other kind of cosmetic problem, I'll send you the
- corrected source FREE, up to but not including the next major
- version of SPLIT and UNSPLIT! (Sounds like registration, doesn't
- it???)
- I'll probably even be nice enough to give you the next
- version's source for half-price or something if you order.<g>
- Whatever the case, I won't let you regret it. I'm not doing this
- to get rich, I just think that the programs don't offer enough for
- sale, but the source does!