***************************************************************************

This can do Terrible things to your code base
****************************
 Back UP before using and take care
***********************************
*************************************************************************


String to AnsiString Conversion

With the introduction of Unicode support in Delphi 2009 code gear changed the
generic definitions of String, Char and PChar and while they still offer
compiler switches to support old short string code (Delphi One string type)
they did not provide a switch to support Longstring data from ?Delphi 3? to
Delphi 2007 which may be compromised by the Unicode implementation. I made
extensive use of the Delphi LongString in string manipulation routines,
communications and persistence framework and I have much code that cannot
tolerate and in fact does not need Unicode Conversions as I am mostly dealing
with byte streams which may contain Unicode but can be handled as bytes.
The old Longstring of Byte sized Chars still exists but is requires the
generic types to be re-specified as AnsiStiring, AnsiChar and PAnsiChar.
 Doing this on a file by file basis became tedious and I now have a tool.
 Others might be interested.

When Compiling in 2009 I then found I was making changes from the general api 
call to the specific Ansi version so the code now supports an ini file with a
list of conversions


****************************
 Back UP before using and take care
***********************************

Usage

The code does a global replace on .pas and .dpr files
"String" to "AnsiString"
"Char" to "AnsiChar"
"PChar" to "PAnsiChar"
"Chr" to"Chr"    Chr(78) stays as 8bit ???

It Excludes words in comments or quotes
It Excludes Short Strings (String[???]) but does not check for the compiler switch  {$H-}

It will do
a single file,
a single directory or
a directory tree (Directory and all Sub directories)

In the directory mode and Directory tree mode you can flag "Edit the existing File"
 A back up is made by first renamimg the current file(s)

In Directory Tree Mode and if  NOT "Edit the existing File" you can specify
Copy all Delphi files. Seemed a good idea at the time but it is probably better
to do your backup and then process files inplace. Recreating the Tree with all Delphi
files allowed BeyondCompare to show exactly what was done but I found in many cases
I needed help, database and test data files manually copied across.

You can Also Specify Delete Existing File(s) so you can repeat the process without manually deleting.

***************************************
The INI File  and Function Conversions

If  the AProcessFunctions flag is set the software will look at the ini file
and make the flagged conversions

Eg.

[CONVERSIONS]
  CopyFile 	= CopyFileA
  CreateProcess =  CreateProcessA
  OpenService 	= OpenServiceA



