Search/Replace Application Synopsis The Search/Replace application was built to allow application developers, system/network administrators, html writers, and others to change a key word or phrase in many lines of many text files quickly and efficiently. Application developers can, for example, wire it into the Microsoft C++ visual work bench through the Options/Tools menu to enrich its editing capability. It can also be used stand-alone by administrators, html writers, et. al. who need to change a piece of information in one or more lines of many text files located in a single directory. Search/Replace allows you to: o define the search and replace strings; o define whether or not the search will be case sensitive (replace is always as typed); o define whether or not it must find the search string as a whole word or allow it to be embedded; o control whether the replace operation will be global or a confirmation is required for each replace (it will allow you to change from confirm each to global during the confirmation process); o select one or more files you want it to search (limited to a single directory); o define whether to replace all instances in a line or only the first; o define the file extensions you want to always search or exclude (prompts you when it encounters an extension not on one of the two lists or allows you to add it to one of two additional lists which are search/exclude for this session only); o include an extension from its always exclude list for a specific session; o define whether the files it searches conform to the UNIX file type rules for end-of-line (discussed below); o abort/stop in the middle of a replace session when confirm each is selected; o change from search/replace to insert a string at a specific column in every line of the files you select (discussed below); and o use a limited set of special characters (tab, formfeed, carriage return, and newline) to add/change text at the end-of-line, convert spaces to tabs or vice versa, and control how you printer responds. Search/Replace automatically makes an unmodified back up of the files it modifies and allows you to define the character it will use as the first character of the back up's extension (uses up to the first two characters from the original extension to help preserve uniqueness of root file name). Search/Replace was designed to handle in excess of a 1000 files as long as only a few lines per file are changed (there is a display limitation, consequently, the number of files multiplied by the number of lines modified per file equal the limitation). The application expects to find newline characters, as a minimum, at the end of each line (a text file) and will not process files that are not constructed in this manner. When the application encounters such a file, it warns you and excludes the file extension from any further searches during the session. In today's networking environment, many files can be manipulated on foreign machines. The UNIX file type option is available for those who need to remotely alter text files that conform to the UNIX file standard. For those not familiar with UNIX Vs DOS file types, UNIX saves files with just a newline (\n) while DOS saves files with a carriage return (\r)-newline(\n) combination. When you are using the end-of-line characters to insert/replace, you must be aware of their respective formats. To help you remember, the carriage return character is not displayed in the allowed special character set when the UNIX file types box is checked. There have been times when I needed to insert a character or a character string at a specific column of every line in a data file and had to do it manually. As an added bonus, the application will do that for you if you check the Insert @ Column box in the Search/Replace Dialog. The search/replace string captions change as well as the functionality of its controls when the box is checked allowing you to define the character or string and the column where you want it inserted. Be aware, that formerly blank lines will contain the inserted string at the specified column at the conclusion of the operation.