BRUCEINI.DOC 1 Jul 31, 1997 This text file describes using an *.INI file or environmental variables to override the system defaults for this and other programs by the same author. Both of these are always optional but they can be very useful. - - - - - - - - - - - - - - - - - INI files - - - - - - - - - - - - - - - - - 1.1 What is an INI file? An INI file is a way of specifying parameters for a program that you don't want to have to respecify from the command line each time. This allows you to override any program defaults you want to change. This is very useful if you disagree with the defaults I've established for the routines. It is also useful in cases where you typically use the command one way but in fairly regular cases you need to run the command using a whole bunch of different parameters. You can set up one INI file for your standard usage and then provide a different INI file when it's time to run the lesser used versions. 1.2 What's the default INI file name for each program? Each of the programs reads an INI file if it can find one. By default, the INI file that is searched for is based on the executable's name but not always. This is shown below (block declarations are described in 1.3(c) below; environmental variables are described in section 2.1 below): Routine INI file Block Environmental Variable AV.EXE AV.INI [AV] AV BFIND.EXE BFIND.INI [BFIND] BFIND CHANGE.EXE CHANGE.INI [CHANGE] CHANGE CONVERT.EXE CONVERT.INI [CONVERT] CONVERT COPSINCE.EXE COPSINCE.INI [COPSINCE] COPSINCE DATES.EXE DATES.INI [DATES] DATES DIRCOMP.EXE DIRCOMP.INI [DIRCOMP] DIRCOMP DIRTOTAL.EXE DIRTOTAL.INI [DIRTOTAL] DIRTOTAL EUMAIL.EXE EUMAIL.INI [EUMAIL] EUMAIL FILL.EXE FILL.INI [FILL] FILL FILUPDAT.EXE FILUPDAT.INI [FILUPDAT] FILUPDAT FIXTEXT.EXE FIXTEXT.INI [FIXTEXT] FIXTEXT FORTUNE.EXE FORTUNE.INI [FORTUNE] FORTUNE HTMSTRIP.EXE HTMSTRIP.INI [HTMSTRIP] HTMSTRIP ISAMFIND.EXE & ISAMMAKE.EXE ISAMFIND.INI [ISAMFIND] ISAMFIND MOZ.EXE MOZ.INI [MOZ] MOZ PAGINATE.EXE PAGINATE.INI [PAGINATE] PAGINATE READ.EXE & READINIT.EXE & READMAKE.EXE & READY.EXE READ.INI [READ] READ TXTABLE.EXE TXTABLE.INI [TXTABLE] TXTABLE BRUCEINI.DOC 2 Jul 31, 1997 1.3 What does an INI file look like? The INI file is an ASCII text file that can be created maintained by hand. The commands in the INI file should begin in column 1. It can consist of: (a) Command-line parameters (b) Comments (c) Block declarations (d) Special items (vary by routine) (a) Command-line parameters: The INI file can consist or one or more command line parameters. In most cases, it can *only* include command line parameters that begin with a slash ("/"). These will vary by routine of course but, in READ for example, your INI file might appear like this: /MONO /-DOS /COLOR=123 134 145 156 (b) Comments: The INI file can also contain comment lines. These are defined as any lines that are blank or begin with a semi-colon. Comments can also begin after a statement. Precede them with at least two spaces and a semi-color or one or more space and "/*" like the following: /MONO ; Need to override color setting since upsets monitor /-DOS /* Don't want them being able to jump to DOS (c) Block declarations: You can combine INI files if you'd like. This saves some disk space. Typically, this is done in connection with the SET BG=inifile environmental parameter (described below). Blocks are declared by using the name of searched-for routine in brackets. (See the table above to see what blocks are searched for for each routine.) Any statements between one block and the next are assumed to be associated with the first routine. For example: ; ALL.INI -- contains all of the INI statements [DATES] /SORT [FILL] /ON /SPLIT [READ] /MONO BRUCEINI.DOC 3 Jul 31, 1997 (d) Special items: Some routines allow the INI file to include statements that cannot be specified from the command line. These special statements are described in the specific routine's documentation. A fairly complicated example might be an INI file used for the HTMSTRIP program. In this case, you might find all of the following types of lines: (blank line) ignored as comment ;xxxxx ignored as comment [xxxxx] beginning of program block (e.g. "[HTMSTRIP]") /xxxxx command-line parameters \xxx = \xxx character-translation entry &xxx;= xxx entity references (HTML translations) = xxx how to show certain blocks 1.4 Where does each program look for the INI file? Each program here looks for an INI file unless instructed otherwise. The logic used is as follows. Note that the first "hit" wins: (a) No INI file is checked for if any of the following is true: - /-I or /INULL is passed in from the command line - /-I or /INULL is passed in from the routine's environmental parameter (for example, SET READ=/-I) - the environmental variable BG is set to the value of /-I or /INULL (for example, SET BG=/-I) Most programs accept either /-I or /INULL. However, several routines (BFIND and CHANGE) accept /-I to mean do a case-insensitive search. For these programs, you *have* to use /INULL instead. (b) If a /Iinitfile setting is passed in, the routine uses this to determine the name of the INI file to look for. Note that the file name must include a period (for example, "/ICHANGE.INI") or the program will skip it. (c) The routine looks for an environmental variable BG. If this variable is defined (and it's not set to /-I), then the routine takes this to be the name of the INI file to look for. (d) The routine looks for the INI file under the "INI file" name shown in the table at the start of this documentation. BRUCEINI.DOC 4 Jul 31, 1997 1.5 What's the search path sequence for the INI file? If the INI file name does not include either a drive or path specification (for example, you don't pass in something like /IC:\ALL.INI), the routine will search for the named file. It will check for it in the following places in the following order. The first place that it finds it wins: - Your default subdirectory (where you were when you executed the command) - The subdirectory that contains the EXE that you're executing - Your regular DOS path If you do not have an INI file, this searching can take awhile especially if you have any networked drives in your path. In this case, specifying "/-I" will save some time. Passing in a fully qualified filename also helps. 1.6 I'm lost. What does your INI file look like? Personally, I have a common INI file named WAYNE.INI in the root of my C: drive. I put it there so I don't run out of environmental space by specifying some huge path. I have the following statement in my AUTOEXEC.BAT: SET BG=C:\WAYNE.INI Currently, my C:\WAYNE.INI file looks like this: [AV] /on [bfind] /-empty [COPSINCE] /def text=*.bas *.bi *.c *.diz *.doc *.h *.ref *.sas *.sc *.txt /def prg=*.bas *.bat *.bi *.c *.h *.sas /to c:\temp /replace /text /copy -0 [DATES] /cc:\mine\datemine.txt /sort /day /-i [FILL] /letter [htmstrip] /lc:\vbdos\htmstrip.ini /-symbols /warnings [paginate] /overwrite /cc:\bat\brucedoc.ctl If I ever need to override the WAYNE.INI settings, it's easy to do by passing them in from the command line or by specifying /-I from the command line. BRUCEINI.DOC 5 Jul 31, 1997 - - - - - - - - - - - - Using Environmental variables - - - - - - - - - - - - 2.1 Introduction The programs all allow you to pass in regular DOS environmental variables, either from the command line or from the INI file. These variables will be resolved by the program. Under Windows 95 and 4DOS, the variables are resolved by the operating system instead. 2.2 What are environmental variables? The DOS environment is a shared area of memory that is used for setting certain values that one or more program might need. These values are retrieved by examining a given environmental variable which has specific information that a program might want. To see you environmental variables, type "SET" from the DOS prompt and press . This will return a listing of the environmental variables and their values. For example: C:\>SET CONFIG=NORMAL BG=C:\WAYNE.INI BLASTER=A220 I5 D1 H5 P320 Q2 T4 COMSPEC=C:\COMMAND.COM CPAV=D:\PCT\DATA\CPAV.INI CPBACKUP=D:\PCT\DATA LINK=/SE:256 PATH=C:\DOS;C:\BAT;C:\;C:\UTIL;C:\UTIL\COPY;C:\UTIL\80386;C:\VBDOS;C:\UTIL\GRAPHICS;D:\PCT;E:\WINDOWS PCTOOLS=D:\PCT\DATA PROMPT=$p$g TEMP=E:\TEMP C:\> Environmental variables can be set by saying "SET variable=value" such as: SET PROMPT=$p$g 2.3 Aren't there special environmental variables for these routines? (a) Each routine has a default environmental variable that is checked when the program runs. See the table in section 1.2 above for more information about this. (b) Each routine also checks an environmental variable BG for it's value. BRUCEINI.DOC 6 Jul 31, 1997 2.4 Other than the special ones above, how would you use an environmental variable in these routines? Pass in the variable as "%variable%" as part of the regular parameter list (or in the INI file or whatever) and the programs will resolve the variable to its assigned value for you. For example: C:\>SET USER=BGuthrie C:\>BFIND %USER% SYSTEM.INI Will cause the BFIND program to search for the string "BGuthrie" when it is run. The routine leaves intact any variables that are not defined. If you wish to turn off resolution of the environmental variables, pass in the parameter /-ENV. 2.5 Can I assign something with an equal sign in the value? Environmental variables can't contain equal signs since these are used for the assignment itself. If you need to use an equal sign, put a comma in instead and my programs will translate it as an equal sign for you. This will not affect any comma within a quoted string. Note that this convention is not standard within DOS so it's only going to work in these specific programs. - - - - - - - - - - - - - - - - - - Author - - - - - - - - - - - - - - - - - - Bruce Guthrie Wayne Software 113 Sheffield St. Silver Spring, MD 20910 e-mail: WayneSof@erols.com fax: (301) 588-8986 http://www.geocities.com/SiliconValley/Lakes/2414