home *** CD-ROM | disk | FTP | other *** search
- {
- cmdln.dem
- 6-4-90
- Demo the use of cmdln.pas
-
- Copyright 1990
- John W. Small
- All rights reserved
-
- PSW / Power SoftWare
- P.O. Box 10072
- McLean, Virginia 22102 8072
- (703) 759-3838
- }
-
- program cmdlnDemo;
- uses crt, cmdln;
- var options : string;
- params : CmdLnParams;
- i : integer;
- begin
- clrscr;
- if ParamCount > 0 then begin
- writeln('Test the CmdLnParam object with the following command line:');
- writeln;
- write(' ');
- for i := 0 to ParamCount do
- write(ParamStr(i),' ');
- writeln
- end;
- params.init('o:');
- if boolean(params.getOption) then;
- if (params.optCh <> 'o') or (length(params.optArg) = 0)
- then begin
- writeln('usage: cmdln -ooptions *');
- writeln;
- writeln('where "options" consists of the letters to look for, and');
- writeln(' "*" are the command line arguments to be parsed by "options."');
- writeln(' For the purposes of this test "o" switches are skipped.');
- writeln;
- writeln('For example, with the command line: ');
- writeln;
- writeln(' cmdln /oC:af:z /afnew /zC cmdfile outfile');
- writeln;
- writeln('the "options" string is "C:af:z", which means that this particular invocation');
- writeln('of the demo will recognize "C", "a", "f" and "z" as switch options. "C" and');
- writeln('"f" take arguments, which is indicated by the colon after each in the "options"');
- writeln('string. Switch options are introduced by "/" or "-" in DOS. The "options"');
- writeln('string is then used to parse the rest of the command line. In this case it');
- writeln('recognizes "a", "f" with argument "new", "z", and "C" with argument "cmdfile."');
- writeln('Notice that options taking arguments must appear last in the switch clusters.');
- writeln('Run this demo with command lines similar to this example to see how it');
- writeln('works. Then besure to read the notes in the interface section of cmdln.pas');
- writeln('for complete instructions on how to use the CmdLnParams object. Then return');
- writeln('to the source code of this demo and study how I used it. You will then be');
- writeln('ready start coding with the CmdLnParams object.');
- writeln;
- writeln('Press "Enter" to quit.');
- readln;
- halt
- end;
- writeln;
- writeln('Parse for the following options: ');
- writeln;
- for i := 1 to length(params.optArg) do begin
- write(' ',params.optArg[i]);
- if i < length(params.optArg) then
- if params.optArg[i+1] = ':' then begin
- inc(i);
- write(' with argument')
- end;
- writeln
- end;
- writeln;
- writeln('Parameters parsed as ...');
- writeln;
- params.init(params.optArg);
- while (params.getOption <> #0) do
- if params.optCh = '?' then
- if params.optNot = 'o' then
- params.nextCluster
- else
- write(' optNot: ',params.optNot)
- else if length(params.optArg) > 0 then
- writeln(' optCh: ',params.optCh,' optArg: ',params.optArg)
- else
- writeln(' optCh: ',params.optCh);
- while (params.paramNo <= ParamCount) do begin
- writeln('ParamNo: ',params.paramNo,
- ' ParamStr: ',ParamStr(params.paramNo));
- inc(params.paramNo)
- end;
- writeln;
- write('Press "Enter" to quit.');
- readln
- end.
-
-