Dec 122017
Excellent binary/text file search and replace utility.
File MUTATE11.ZIP from The Programmer’s Corner in
Category Word Processors
Excellent binary/text file search and replace utility.
File Name File Size Zip Size Zip Type
MUTATE.EXE 39904 25315 deflated
README.DOC 9650 3840 deflated

Download File MUTATE11.ZIP Here

Contents of the README.DOC file

MUTATE - File mutation utility - Version 1.1 - (c) 1991, Hugh R. Kern

Usage: MUTATE ifname[,ifname...] [-O=outpath] [-Icasesense]
[-S0=srcstr0 [-S1=srcstr1 [...]]]
[-D0=dststr0 [-D1=dststr1 [...]]]

Where: ifname -- is a file specification for the files to be converted
(wildcards are allowed ie. "*.h")

casesense -- case sensitivity '+' on, '-' off (default on)

srcstr# -- a string to be replaced where # can vary from 0 - F.
srcstr# can be straight ASCII, or the following special cases
preceded by a '\' character:

\Xhh[hh]\ - hh is a sequence of hexadecimal binary bytes
\Ffilename\ - string should be read from file called filename
\Llong\ - long is a long integer (4 bytes)
\Iint\ - int is a short integer (2 bytes)
\Uuint\ - uint is an unsigned short integer (2 bytes)
\Hhex\ - hex is a hexadecimal integer (2 bytes)
\Ddouble\ - double is a double length floating point number
\Eexp\ - exp is a short floating point number

dststr# -- the string with which to replace srcstr#
dststr# is specified using the same rules as srcstr#

Example: To convert "let CONSTANT EQUAL ??" into "#define CONSTANT 1"
"MUTATE filename -s0=let -d0=#define -s1=EQUAL -s2=?? -d2=1"

Example: To convert "let CONSTANT EQUAL ?? /*" into "CONSTANT = 1 ;*"
"MUTATE filename -s0=let -s1=EQUAL -d1== -s2=?? -d2=1 -s3=/* -d3=;*"

MUTATE can also perform extensive data conversion from one format into
another. For example, if you have a Sprint word processing file and you
want to convert it into Ami-Pro format, use MUTATE to convert all of your
HEADINGA tags to Chapter styles. Also, if you have a datafile with a
floating point number that doesn't occur anywhere else in the file and you
want to change it without hiring the programmer to write a special program.
Just use MUTATE's \Dnumber feature. This program works with any binary or
ASCII file.

The best way to describe MUTATE, is to put it in the context of
problems you may have had in the past or may currently have.

Have you ever wanted to:

- Convert a number in binary file into another number without having
to write a special program or pay a programmer to do it.

- Change all of the occurences of a string into another string in
text files.

Example: Your application uses numerous ASCII configuration files
that list a number of directories. If you have just moved the
application to another drive and you need to change the drive id
in front of all of the paths, you must change all of the
configuration files. While you can do this with most text
editors, the process becomes tedious when you have to do it over
and over.

Example: You have a program that is conditionally compiled based
on some #define's and equ's in .H and .ASI files. If you want to
change a single occurence of a compiler directive and must change
the C AND assembly language definition files, this is also a task
that any good editor can handle, but one that becomes tedious when
it must be performed often.

- Massage data in text or binary files, eliminating redundant
spaces, carriage returns, and tabs, or converting formatting
information from one word-processor to another.

- Perform batch search-and-replaces on configuration or .BAT files
to reflect current path information when installing software.

Then MUTATE is for you...

For example, I recently had a large text file to put through a
formatter for typesetting. Unfortunately, the file was created by
someone who, as an expert IBM Selectric typist didn't know that 1's
are ones and l's are els. In addition, the creator of this file
didn't know that putting multiple tabs in a row or many spaces after
tabs can wreak havoc on most reasonable formatting programs. I used
mutate to convert l's to 1's by setting a configuration file
MUTATE.CFG like this:


By converting l# and #l combinations to 1# and #1 combinations,
respectively, and continuing the MUTATE until no more changes were
made, I was able to convert all of the pseudo-numbers in the file into
actual numbers.

Then, by converting tab-space sequences into a single tab, I was able
to eliminate those pesky extra spaces. The general idea was to keep
MUTATEing until no more changes were made.

Then, to get the file from Sprint format (yes, some people still use
Sprint) into Ami Professional (not the best tool for a large task), I
just MUTATEed the HEADINGA strings into strings, being
careful to put the appropriate binary combinations surrounding the

In a relatively short time, the document was "massaged" into a format
that AmiPro could handle.

Another example is that a GIS database that I occasionally use, has
quite a few configuration files that tell it where to find data, map
and other files. You can imagine that with 30 or more files to
change, pointing all of your data to a different directory can get
somewhat tedious.

Once again, MUTATE performs the changes quickly and with ease from the
DOS command-line.

Finally, HXJ's ECOMM communications software (we will have a shareware
version out very shortly) makes use of a batch file to invoke the
necessary communications TSR's. When installing the software, we use
MUTATE to convert the batch files... making them load the correct TSR's
and direct the TSR's to look in the correct directories for
configuration information.

You can see the exact syntax of MUTATE by simply typing MUTATE with
nothing after it. MUTATE also looks for a MUTATE.CFG file for
command-line options in its own or the current directory (one per
line, comment them out by NOT starting them in the first column).

If you have an application for this type of program please feel free
to try MUTATE to see if it does the job you need. But, remember that
MUTATE is only free for NON-commercial use or for evaluation purposes.
If you use MUTATE in your business or for any other commercial use, we
ask that you pay the $15.00 registration fee in order to be license
the software.

We also ask that you don't distribute MUTATE in any form other than
the original zipped MUTATE.ZIP format.

If you want to use MUTATE with your own software, we make distribution
and site licenses available at very reasonable terms.

Also, part of the reason that MUTATE is so large (39K) is that it
includes floating point math libraries. We make a non-shareware
version (27K) available without floating point capabilities to all of
our registered users for a nominal $5.00 shipping and handling fee.

Finally, remember that it is very easy to rip off a program to do any
of MUTATE's functions in a matter of hours (for a good programmer),
but it is considerably more trouble to produce a finished, fully
debugged product with thorough on-line help / documentation and such
niceties as allowing wildcard'ed filenames. It is only with your
support that programmers will continue to go to the trouble of making
finished products available as shareware.

We also make it as easy as possible for you to register your copy of
MUTATE, either send your send check or money order to:

HXJ, Inc.
966 Hungerford Drive, Suite 3
Rockville, Maryland 20850


call HXJ at (301) 424-0070 to charge MUTATE on your Visa or Mastercard.

Neither HXJ, Inc. nor the author of the program make any guarantees
that MUTATE is fit for any particular purpose. In no event will HXJ,
Inc. or the author be liable for any special, incidental, or
consequential damages resulting from the use of this program.

Gratuitous advertisement
Look for ECOMM, coming soon to a bulletin board near you.

ECOMM is a real-time e-mail delivery system that delivers mail
directly to your computer while you work on something else (without
requiring special multi-tasking software.)

Even better than all that, ECOMM lets you design custom messages that
look and behave exactly how you want them. You can design messages
that mimic database records and use ECOMM's external hooks to bring
the data directly into your database when messages arrive.

ECOMM also works over most communications hardware including:
- packet radios
- Hayes modems (on normal or cellular telephones)
- serial null-modem connections
- various permutations of the above systems (on satellites, etc.)

ECOMM also comes in a network e-mail version that lets you send
messages to someone in their car as easily as sending them across a

We are putting the finishing touches on it and beta-testing.

ECOMM 1.10 will be available at the end of March 1991.

 December 12, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>