Philip Erdelsky's Software Website

Please e-mail comments, corrections and additions to the webmaster at pje@efgh.com.

I've been a computer programmer for over twenty years, and from time to time I write something too small to sell and too good to discard. Here are some of my favorites. All of them are in the public domain. You may download them and use them in your own applications.

Linked-List Memory Sort (12K)
A C function to sort a linked list in memory, using an arbitrary comparison function and a tape-merge algorithm, which is O(n log n) in all cases. The function is non-recursive and re-entrant, and changes only the links.
Merge Sort (24K)
A C function to sort a file, using an arbitrary comparison function, arbitrary record reading and writing functions, and a tape-merge algorithm, which is O(n log n) in all cases. The function is non-recursive and re-entrant. It calls on the Linked-List Memory Sort.
Picture Button Control (27K)
A custom control for Windows 3.1/95/NT applications. You supply bitmaps to be put on the button when it is enabled or disabled. The control does the rest. C++ source code. No VBX.
DES Encryption and Decryption (31K)
A C++ package to perform DES encryption and decryption on arbitrary data. Version 2 includes Triple DES in addition to regular DES.
General Reentrant printf() Function (14K)
A generalized version of printf() that supports arbitrary output methods and is reentrant, but does not support floating-point editing.
Matrix Package (10K)
A parameterized C++ class that implements the most common matrix operations.
Fixed-Point Package (20K)
A C++ class that implements fixed-point arithmetic.
Variant of Quicksort (3K)
A variant of the qsort() library function which passes a user-defined pointer to the comparison function.
Change Directory Utility for 32-Bit Windows (8K)
A small utility that lets you navigate from one directory to another in a DOS window by selecting the directory from a list.
Recycle Delete for 32-Bit Windows (2K)
A small utility which can be called from a DOS window in 32-bit Windows to delete a file and send it to the Recycle Bin.
A General Sort Package (32K)
The last sort package I will ever write, hopefully. ;-)
A Hash Table Package (12K)
A hash table package that does not use templates.
Plain Vanilla Posting Program 3.0 (75K)
A basic accounting package that posts to a ledger, draws trial balances and puts amounts into reports.
The Euclidean Algorithm (8K)
An implementation of the Euclidean algorithm for a general unsigned integer type.
RSA Public-Key Cryptography (28K)
An explanation of public-key cryptography and the RSA public-key cryptography algorithm. An implementation of RSA public-key cryptography. Includes a multiple-precision unsigned integer package.
RSA Data Security, Inc., MD5 Message-Digest Algorithm (15K)
A cleaned-up version of Ronald Rivest's 1992 implementation of a 128-bit message digest.
The Rijndael Encryption Algorithm (113K)
A modified version of a public-domain implementation of the Rijndael Encryption Algorithm, easier to use than the original.
Unix To DOS/Windows (68K)
A simple program for Windows XP that changes UNIX text files to DOS/Wandows text files by replacing \n by \r\n.
dBase III+
A package to access dBase III+ files in C++ under more recent versions of Windows.

Looking for more C/C++ code? Try