Splice 1.5 build: 9639 released: 2010-11-07

Recombine bits of files into new files..

Copyright: (c) 2017 Canadian Mind Products.

C++ command line utility.
Download from: http://mindprod.com/products3.html#SPLICE

----

Notes:

This program can only be used from the command prompt, (or via an command
line style icon shortcut) e.g. under Windows command.exe or JPSoft
tcmd.exe, formerly called the DOS box. Just clicking the programs in a
directory listing will not do anything useful. Just typing the program
names at the command prompt will not either.

This program requires a manual install! See below.

This program works with vanilla text files, (e.g. ASCII files or UTF-8
Unicode files). You will need a text editor to create and view them, not a word
processor. e.g. notepad, Visual Slick Edit or other suitable text editor
http://mindprod.com/jgloss/editor.html. You must use a monospaced font
http://mindprod.com/jgloss/monospacedfonts.html (aka fixed pitch, aka
programmer font) to view your files, or they won't look properly aligned.

I put out an avalanche of free software into the world, and submit PAD
files to hundreds of distribution sites, but I rarely hear back from
anyone.  What's happening?  Does it all just work fine?  It is so
complicated nobody can figure out how to use it and they give up on it?
It is it useful?  Since everyone has the source, do people just fix the
programs to their liking themselves?  Did you have trouble installing?  Do
I presume you know too much?  I would be happy to hear from you about your
experiences, positive or negative and your requests for improvements.  A
one-line email to roedy@mindprod.com would be great.

===> Free <===
Full source included.
You may even include the source code, modified or unmodified
in free/commercial open source/proprietary programs that you write and distribute.
May be used freely for any purpose but military.
For more details on this restriction, see
http://mindprod.com/contact/nonmil.html
If you include any Canadian Mind Products code in your own applications,
your app too must be labelled non-military use only.
http://mindprod.com/contact/nonmil.html
All C++ source and EXE files code are included.

----

Prerequisites:

This program runs under Microsoft Windows from the command line (e.g. Win2K/XP/Vista)

----

Installing on a PC:

Download source and executable files to run on your own machine as a standalone utility.
To install, extract the zip download with WinZip
(or similar unzip utility) into any directory you please,
often J:\ --  ticking off the <span class="click">use folder names</span> option.

----

Installing on a MacIntosh:

Use Safari to download source and executable files to run on your own machine as a standalone utility.
The EXE files will not work. You will have to recompile, perhaps making minor changes to the source code.
Safari will automatically unpack the zip into ~/Downloads (version 10.5)
[or on the Desktop (version 10.4 and earlier)].
First install a recent Java JDK or JVM.
See http://mindprod.com/jgloss/installingjava.html.
You may optionally move the download tree to a permanent home.

----

Rebuilding:

The zip already contains the necessary exe, so unless you modify
the program, there is no need to recompile the source or recompile it.
Configure.java basedir="E:/" in rebuild.xml to the drive where your files are and tweak rebuild.xml.
Use ANT and rebuild.xml, not build.xml, to rebuild and link.

----

Use:

SPLICE for "gene" splicing, cutting, copying, inserting and
        overlaying bits of a file into another.
Uses for SPLICE:
1. excising a section of a file.
2. replacing a section of a file.
3. inserting a section into a file.
4. extracting a section of a file.
5. appending a section onto a file.
Splice is designed to work on text files. For audio files,
you would use an audio editor like GoldWave. For word
processing files, you would use the word processor that
created the two files. It can be used on binary files in the
rare instance just butting the files together is sufficient.
SPLICE commands, may be upper or lower case:
SPLICE CUT MyFile1.Txt START 6 LENGTH 5 RECSIZE 1024
    remove a slice from a file offset 6 length 5
    Offsets and lengths are measured in blocks of 1024.
SPLICE CUT MyFile1.Txt START 6 LENGTH 5 TO MyFile2.txt RECSIZE 1024
    remove a slice from a file offset 6 length 5
    and copy it to a new file.
SPLICE CUT MyFile1.Txt START 6 LENGTH 5 APPEND MyFile2.txt RECSIZE 1024
    remove a slice from a file offset 6 length 5
    and copy it to the end of another file.
SPLICE CUT MyFile1.Txt START 6 LENGTH 5 OVERLAY MyFile2.txt AT 7 RECSIZE 1024
    remove a slice from a file, offset 6 length 5,
    overlay it on top of another file at offset 7.
SPLICE CUT MyFile1.Txt START 6 LENGTH 5 INSERT MyFile2.txt AT 7 RECSIZE 1024
    remove a slice from a file, offset 6, length 5, insert
    at offset 7 in another file
SPLICE COPY MyFile1.Txt START 6 LENGTH 5 TO MyFile2.txt RECSIZE 1024
    copy a slice from a file offset 6 length 5
    to a new file
SPLICE COPY MyFile1.Txt START 6 LENGTH 5 APPEND MyFile2.txt RECSIZE 1024
    copy a slice from a file offset 6 length 5
    to the end of another file.
SPLICE COPY MyFile1.Txt START 6 LENGTH 5 OVERLAY MyFile2.txt AT 7 RECSIZE 1024
    copy a slice from a file, offset 6 length 5,
    overlaying it on top of another file at offset 7,
    replacing the previous data.
SPLICE COPY MyFile1.Txt START 6 LENGTH 5 INSERT MyFile2.txt AT 7 RECSIZE 1024
    copy a slice from a file, offset 6, length 5, inserting
    at offset 7 in another file.
START defaults to 0
AT defaults to 0
RECSIZE defaults to 1
If length reaches out past the end of the source file, it will be shortened.
Target files will be expanded as needed with zeroes.
Because of the antiquity of this program it uses 32-bit rather than 64-bit
arithmetic internally.  This limits it to files of 2 GB.  It is on my todo
list to extend it.
This program may be freely copied and used for any purpose except
military.  C++ source included.


----

Version History:

 1.0 1997-04-27 initial release

 1.1 1997-04-28 added APPEND
                add abbreviations for keywords

 1.2 1998-11-08 embed Barker address
                correct Bulk::move logic so that fromOffset is defined.

 1.3 2007-01-04 convert to POSIX, safe char handling lib, long filename support.

 1.4 2009-03-11 add ant build script and Visual C++ project build file.

 1.5 2010-11-07 fix delete[] bug the compiler did not detect.

-30-