home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 16 / 16.iso / t / t265 / 1.img / SPLIT.DOC < prev    next >
Encoding:
Text File  |  1993-10-12  |  18.3 KB  |  368 lines

  1.                          SPLIT & UNSPLIT
  2.                                 
  3.           Big File SPLITting and UNSPLITting Utilities
  4.  
  5.                                By
  6.  
  7.                         Joseph M. Morgan
  8.                          SPLIT & UNSPLIT
  9.                         Table of Contents
  10.  
  11. Copyright and User Information . . . . . . . . . . . . . . . .  1
  12.  
  13. Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . .  2
  14.  
  15. SPLIT - Large File Splitting Utility . . . . . . . . . . . . .  3
  16.      Purpose . . . . . . . . . . . . . . . . . . . . . . . . .  3
  17.      Requirements. . . . . . . . . . . . . . . . . . . . . . .  3
  18.      SPLIT - How To Do It. . . . . . . . . . . . . . . . . . .  4
  19.      What SPLIT Does . . . . . . . . . . . . . . . . . . . . .  4
  20.  
  21. UNSPLIT - Large File UnSplitting Utility . . . . . . . . . . .  5
  22.      Purpose . . . . . . . . . . . . . . . . . . . . . . . . .  5
  23.      Requirements. . . . . . . . . . . . . . . . . . . . . . .  5
  24.      UNSPLIT - How To Do It. . . . . . . . . . . . . . . . . .  5
  25.      What UNSPLIT Does . . . . . . . . . . . . . . . . . . . .  5
  26.  
  27. INFO On Both Programs. . . . . . . . . . . . . . . . . . . . .  6
  28.      Installing. . . . . . . . . . . . . . . . . . . . . . . .  6
  29.      History & Direction . . . . . . . . . . . . . . . . . . .  6
  30.      Future Support. . . . . . . . . . . . . . . . . . . . . .  7
  31.      Cost & Registration . . . . . . . . . . . . . . . . . . .  8
  32.                  Copyright and User Information
  33.  
  34.      These programs and this documentation is the property of
  35. Joseph M. Morgan.  You may freely copy and distribute this software
  36. and its documentation for non-commercial and non-governmental use
  37. as long as for any given program, the program and it's
  38. documentation are copied and distributed together.  You may not
  39. distribute the software without the documentation or the
  40. documentation without the software.
  41.      Please send all suggestions, inquiries, and other
  42. correspondence to:
  43.  
  44.                     Joseph M. Morgan
  45.                     9045 Kingston Rd. #102
  46.                     Shreveport, LA 71118-3400
  47.                            Disclaimer
  48.  
  49.      These utilities, their associated documentation and the media
  50. on which they are distributed are distributed as is, with no
  51. warranty either explicit or implied.  Even though every attempt has
  52. been made to provide high-quality, accurate information, this
  53. documentation may contain omissions or errors.  There is no
  54. guarantee, either explicit or implied, that this program will work
  55. properly on any given computer.
  56.      In no event shall Joseph M. Morgan be held liable in any way
  57. for any damages of any kind to include lost profits of any amount,
  58. lost savings of any amount, or other incidental or consequential
  59. damages of any kind arising, for any reason, from the use, misuse,
  60. or inability to use these utility programs and/or their associated
  61. documentation even if Joseph M. Morgan has been advised of the
  62. possibility or occurrence of such damages.
  63.      If the program is defective in any way, you, the user, assume
  64. all responsibility and costs of all necessary repairs and/or
  65. adjustments and/or servicing of any kind.  The distribution rights
  66. and, if applicable, registration cost are all subject to change or
  67. withdrawal without prior notification of any kind.  The contents of
  68. the program documentation may be in error or inaccurate and,
  69. therefore, is subject to change at all times without prior
  70. notification of any kind.
  71.      If you, the user, reside in an area where local laws of any
  72. kind including city, county or parish, state or other local laws
  73. that either explicitly or implicitly require Joseph M. Morgan to
  74. bear responsibility or liability of any kind resulting from the
  75. use, misuse, or inability to use these programs and their
  76. associated documentation, you, the user, are hereby not allowed to
  77. use these programs or their associated documentation, or any other
  78. program and/or its associated documentation produced by Joseph M.
  79. Morgan for any reason or purpose on any computer or equipment
  80. either owned or not owned by you, the user.
  81.      Use of any one of these programs constitutes full agreement
  82. with the conditions of this disclaimer by you, the user, and you
  83. hereby accept all responsibility for use of these programs and
  84. their associated documentation.
  85.               SPLIT - Large File Splitting Utility
  86.  
  87.      Purpose
  88.  
  89.      The reason I wrote SPLIT was because we despise using the DOS
  90. BACKUP utility to copy a single large file from one computer to
  91. another.  Typically, we will use a compression utility to compress
  92. an entire directory, or entire directory tree, into one file.
  93. Usually, however, this file is too large to fit on one 1.44MB or
  94. 1.2MB floppy.
  95.      Plus, have you ever tried using BACKUP on a DOS version 5.0
  96. system and restoring on a DOS version 2.11 system?  It can't be
  97. done folks!
  98.      Also, have you ever been in the middle of a backup and run out
  99. of 1.44MB disks, and had a stack of 1.22's just sitting around
  100. waiting to be used?  But, you also knew that the 1.22s alone
  101. wouldn't be enough?  Try changing drives in mid-stream?  It can't
  102. be done!
  103.      You ever run out of blank disks and tried to continue your
  104. backup onto a good disk that contained needed files?  OOPS!
  105.  
  106.      Well, SPLIT is the answer.  SPLIT will take any single file,
  107. and write it to multiple diskettes (or even multiple hard-drives if
  108. you want, though you'd probably never want), even if the diskettes
  109. are being used by other files.
  110.      No control files are written.  No version formatting
  111. requirements.  And SPLIT doesn't care which version (or
  112. manufacturer) of DOS you might be using.  SPLIT will also allow you
  113. to change diskette drives and sizes on the fly!  So you can start
  114. with a 1.44MB and then go to a 1.22MB, then a 720K or 360K, and
  115. back to a 1.44.
  116.      Note that during testing, I couldn't find a 320K, 180K or 160K
  117. diskette, so I don't know for an absolute fact that these will
  118. work.  But if your computer and version of DOS will read and write
  119. to one of these kinds, I see no reason why SPLIT wouldn't work with
  120. them.
  121.  
  122.      Requirements
  123.  
  124.      SPLIT requires DOS 2.11 or higher to work.  SPLIT doesn't
  125. check the version, and I don't know if it will work on a version
  126. earlier than that, but I trust my compiler's technical
  127. documentation, and I couldn't find a computer running anything less
  128. than 2.11 on which to test it!
  129.      If you're using some version earlier than that, try it.  If it
  130. works, the first thing to do is to let me know.  At the very least,
  131. I can correct my documentation.  The next thing you need to do if
  132. you're using a DOS version less than 2.11 is to UPGRADE!!!
  133.      Hopefully, you have a hard drive and need to copy a file
  134. larger than your largest diskette capacity from one computer to
  135. another.  But there is no reason that you couldn't use a floppy-
  136. only system to SPLIT a 400K file on a 720K diskette across multiple
  137. 360K diskettes.
  138.  
  139.      SPLIT - How To Do It
  140.  
  141.      With all utilities I write, you get help by entering the
  142. program with no arguments on the command line.  What you see is a
  143. Reader's Digest version of this documentation.
  144.      SPLIT requires at least two command line arguments:
  145.  
  146.      split [/r] parent_file_name target_drive
  147.  
  148. The "parent_file_name" is any valid DOS file name.  "target_drive"
  149. is the drive to which you wish to begin SPLITting.  SPLIT allows
  150. you to change drives in process, but it wants to know where to
  151. begin.
  152.      The optional switch "/r" tells SPLIT to automatically replace
  153. any existing child files on your target diskette(s).  This function
  154. is basically for re-SPLITting a file to the same diskette(s) as a
  155. previous SPLIT.  Normally, SPLIT finds one of it's children and
  156. tells you it's there.  Then it asks permission before writing over
  157. it.
  158.  
  159.      What SPLIT Does
  160.  
  161.      SPLIT begins by locating your parent file.  Then it looks at
  162. your target drive and crams as much of the parent as it can onto
  163. that disk or diskette.  Then it tells you it is time to continue. 
  164. This is where you can change drives.  To stay on the same drive,
  165. change diskettes and press [ENTER].  Otherwise, enter the letter of
  166. the drive you want to go to next.
  167.      SPLIT continues this process until the entire parent file has
  168. been written.  SPLIT also enters some code into each child file to
  169. let UNSPLIT know how to UNSPLIT it.  See "What UNSPLIT Does" below
  170. for more information on UNSPLIT.
  171.      Please note that you DO NOT have to have a fresh diskette in
  172. the drive.  SPLIT WILL NOT overwrite existing files on your
  173. diskette UNLESS it is an older child of the existing parent file. 
  174. Also note, however, that you DO have to have your diskette pre-
  175. formatted, as SPLIT WILL NOT format your diskette(s) for you.  (See
  176. "History & Direction" below for possible changes to this rule.)
  177.      While SPLIT is doing it's job, it gives you two percentages. 
  178. The first percentage is the percent of completion of the current
  179. child being written.  The second percentage is the percent of the
  180. completion of the entire process.
  181.  
  182.             UNSPLIT - Large File UnSplitting Utility
  183.  
  184.      Purpose
  185.  
  186.      Obviously, the purpose of UNSPLIT was to get back what SPLIT
  187. created (or un-created, whichever way you want to look at it!).  If
  188. you haven't already, read about the purpose of SPLIT above.
  189.  
  190.      Requirements
  191.  
  192.      UNSPLIT requirements are the same as SPLIT.  See
  193. "Requirements" above under SPLIT's stuff.
  194.  
  195.      UNSPLIT - How To Do It
  196.  
  197.      With all utilities I write, you get help by entering the
  198. program with no arguments on the command line.  What you see is a
  199. Reader's Digest version of this documentation.
  200.      UNSPLIT requires at least one command line argument:
  201.  
  202.      unsplit [/r] [drive:]child [target_drive:[path]]
  203.  
  204. The "child" file name only actually needs to be the root file name
  205. of the name of the original parent file.  When SPLIT does it's job,
  206. it names the first child "`parent_file_name'.0".  All you really
  207. have to give UNSPLIT is "parent_file_name".  You don't have to, but
  208. you should include the drive on which the first child exists.  You
  209. will be able to swap drives and diskettes during the process, but
  210. UNSPLIT needs to know where to begin.
  211.      Now, it is my recommendation that you get into the directory
  212. on your hard drive where you want the UNSPLIT version of your
  213. parent file to be.  Then, enter the UNSPLIT command with a
  214. drive:child combination.  Since it is possible to swap drives
  215. during the SPLIT, you wouldn't want to execute UNSPLIT with a
  216. floppy as your default drive.  (Not that it should hurt, mind you.)
  217.      The optional "target_drive:[path]]" tells UNSPLIT where to put
  218. the original parent file if it is not the current drive and
  219. directory.  Otherwise, UNSPLIT writes the parent file to where you
  220. are when you execute it.
  221.      The optional switch "/r" tells UNSPLIT to automatically
  222. overwrite the existing parent if it exists.  By default, UNSPLIT
  223. asks your permission before overwriting an existing parent.
  224.  
  225.      What UNSPLIT Does
  226.  
  227.      UNSPLIT looks for your first child file.  Once found, it looks
  228. for a file with the same name as the parent file name contained
  229. within special code in the first child file.  If that parent
  230. exists, UNSPLIT asks permission to overwrite it unless you give it
  231. the /r switch.
  232.      UNSPLIT then reads the child file from the diskette, and, when
  233. that's done, UNSPLIT knows to tell you to insert the next diskette
  234. if there is another to insert.  Please note that, though UNSPLIT
  235. can tell which is the next child to read, it cannot tell you which
  236. drive that child needs to come from.  Therefore, if you swapped
  237. drives during the SPLIT operation, number those diskettes so you
  238. can reinsert them in the proper order and change drives when
  239. necessary.
  240.      (During coding for this latest version, I was going to have
  241. SPLIT record the next drive to accommodate UNSPLIT.  But, this
  242. would have meant lots of diskette swapping.  That was so unfriendly
  243. to the user, that I dropped the idea and put a little bit of the
  244. responsibility back on the user.)
  245.      UNSPLIT continues UNSPLITting until all children have been
  246. read and then entire parent has been recreated.
  247.      While UNSPLITting, UNSPLIT looks at the date and time stamp on
  248. each child for the date and time stamp of the original parent. 
  249. This prevents you from accidentally sticking a child of a previous
  250. SPLIT in the place of the child you actually need.  UNSPLIT warns
  251. you if it finds a child that doesn't belong to the proper parent,
  252. and prompts you either to continue, or replace the diskette with
  253. the one containing the proper child.
  254.      Like SPLIT, while UNSPLIT is doing it's job, it gives you
  255. percentages telling you the relative completion of the stages of
  256. it's work.  The first percentage is relative to the reading of the
  257. child.  The second percentage is relative to the completion of the
  258. creation of the parent.
  259.  
  260.                       INFO On Both Programs
  261.  
  262.      Installing
  263.  
  264.      When you get these programs, there is no installation utility. 
  265. In fact, SPLIT and UNSPLIT are ready to run (unless, of course, you
  266. haven't un-archived them from the BBS or service from which you
  267. downloaded them).  Just copy them into a directory that your PATH
  268. command includes.  Look in your DOS manual(s) for more information
  269. on what PATH does.
  270.  
  271.      History & Direction
  272.  
  273.      Like all other utilities I write, I first wrote SPLIT and
  274. UNSPLIT because we needed something like it where I work.  We would
  275. compress a file with vise-grips, but couldn't seem to get some of
  276. them small enough to copy from one computer to another.
  277.      The first version of SPLIT and UNSPLIT wouldn't even copy the
  278. child files to the diskette for you.  You had to SPLIT them to your
  279. hard drive, then copy them, one at a time, to a floppy.  The same
  280. with UNSPLIT.   You had to copy from the floppies one file at a
  281. time, then UNSPLIT them.
  282.      The next version offered the enhancement of copying the files
  283. for you, but there was still the limitation of having to tell SPLIT
  284. what kind of floppies you were using.  And, inevitably, someone
  285. around here ran out of their 1.2MB floppies SPLITting a file one
  286. day, and we scrambled for disks, realizing if we could just tell it
  287. to swap drives and go to the 1.44MB drive, we'd be OK.
  288.      Now, SPLIT figures it out for you.  You can switch drives and
  289. diskette sizes until you are blue in the face.  We've even SPLIT
  290. files as large as a couple hundred megabytes to 40MB Bernoulli
  291. cartridges!
  292.      At the time I finished programming SPLIT and UNSPLIT for this
  293. latest version, I thought that I might expand it to include
  294. compression and all the little goodies those utilities offer.  But,
  295. that would be reinventing the wheel.  So, since the
  296. Shareware/Freeware market offers the best in compression utilities,
  297. I wont attempt to compete with their products.
  298.      I still plan to expand SPLIT to include multiple file
  299. specifications and recursive directory searches across multiple
  300. drives.  A colleague of mine even made the brilliant suggestion of
  301. providing a command file so that you could provide a list of file
  302. specifications and multiple drives and media to SPLIT.
  303.      Another enhancement might be to format unformatted floppies,
  304. but I haven't decided whether to actually format the diskette
  305. myself or to drop out and let your DOS do it for me (and you!).  I
  306. have all of the stuff in SPLIT to do it, as SPLIT grabs INT 24h
  307. (for you technical people!), letting me know the diskette drive
  308. status.  But I just don't know if I want to actually do the
  309. formatting myself.
  310.      The next version of SPLIT will verify that, if you are re-
  311. SPLITting, the parent file you are splitting was last written at a
  312. date and time LATER than the date and time it was written during
  313. the last SPLIT.  This will save you time and trouble if you either
  314. forgot that you had already SPLIT the latest version of a file, or,
  315. if you somehow attempt to SPLIT and OLDER version of a file to a
  316. newer SPLIT version of the same file.
  317.      Any other suggestions would be appreciated.  This is one of my
  318. pet projects.  Every time I get a useful suggestion, I attempt to
  319. employ it.
  320.  
  321.      Future Support
  322.  
  323.      Future support of enhancement requests for SPLIT and UNSPLIT
  324. will depend upon the number of people who respond to me regarding
  325. their use of these programs.  YOU DO NOT HAVE TO REGISTER OR PAY ME
  326. A DIME TO USE THIS SOFTWARE (Of course, if you feel generous ...). 
  327. But, please, let me know how you are using the software, what you'd
  328. like to see it do, etc., etc.  You can write to me at the address
  329. above or below.
  330.      Basically, the more people who actually use it, the more
  331. demand I will see, and I will continue to support it.  If enough
  332. people think my stuff is useable, I might just go ahead and shrink-
  333. wrap it!  But, for right now, I want to be able to deliver the kind
  334. of stuff we have found we have needed to the rest of the world.
  335.  
  336.      Cost & Registration
  337.  
  338.      There is no cost or registration for SPLIT and UNSPLIT.  I am
  339. distributing the programs and this documentation as FREEWARE!!! 
  340. This is how I want to make my mark.
  341.      Now, THIS is how I want to make my money.  I will sell the
  342. COMPLETE C SOURCE CODE for BOTH programs for $25.00.  Just send a
  343. request and $25.00 to me at:
  344.  
  345.                Joseph M. Morgan
  346.                9045 Kingston Rd. #102
  347.                Shreveport, LA 71118-3400
  348.  
  349.      Checks and cash and things that can be turned into cash will
  350. be accepted.  No credit cards please.  (Of course, if you'd like to
  351. send my kids to college or buy me a new house, I'll accept that
  352. too!)
  353.      Be sure to include your return address and the kind of
  354. diskettes you want.  I will send it the day I receive payment.  You
  355. will receive a package with the latest executable versions of SPLIT
  356. and UNSPLIT, the latest C source code both printed AND on the
  357. diskette type and size you request.
  358.      I'll hang on to your address so that if we discover a small
  359. bug or some other kind of cosmetic problem, I'll send you the
  360. corrected source FREE, up to but not including the next major
  361. version of SPLIT and UNSPLIT!  (Sounds like registration, doesn't
  362. it???)
  363.      I'll probably even be nice enough to give you the next
  364. version's source for half-price or something if you order.<g> 
  365. Whatever the case, I won't let you regret it.  I'm not doing this
  366. to get rich, I just think that the programs don't offer enough for
  367. sale, but the source does!
  368.