I get wierd errors when I try to compile the command line argument example.
First it had a problem with the line (ParamStr := ";), so I changed the " to "
"
Then it said ( cmdline.pas(36) Error: undeclared identifier `Arg_num'" )about
the line
( Success := _p_paramstr (arg_num, Str);) I don't know what's wrong.
Here's the text I found in the Documentation of GPC:
<********** begin text here *************>
Accessing command line arguments:
The following module accesses the command line with ParamStr and ParamCount
functions.
These follow the Un*x semantics, so that
arg[0] == program name,
arg[1] .. arg[ParamCount-1] are the arguments.
MODULE command_line interface;
EXPORT cmdline = (Max_length, Arg_type, ParamStr, ParamCount);
CONST
Max_length = 255; { Max length of each argument.
If some arg is longer, the run time system
traps it. }
TYPE
Arg_type = String(Max_length);
FUNCTION ParamCount: Integer;
FUNCTION ParamStr (arg_num: integer): Arg_type;
END. { command_line interface }
MODULE command_line implementation;
{ These are in the GPC runtime library }
FUNCTION _p_paramcount : Integer; C;
FUNCTION _p_paramstr (num: Integer; VAR str: String): Boolean; C;
FUNCTION ParamCount;
BEGIN
ParamCount := _p_paramcount;
END; { ParamCount }
FUNCTION ParamStr;
VAR
Str : Arg_type;
Success : Boolean;
BEGIN
Success := _p_paramstr (arg_num, Str);
(* Should perhaps do something else on failure.
*
* Now it returns the empty string, which is also a valid
* parameter.
*)
IF Success THEN
ParamStr := Str
else
ParamStr := ";
END; { ParamStr }
END. { command_line implementation }
{ The program below, when compiled with the interface module and
linked with the implementation module, accesses the command
line arguments. }
program zap (output);
import cmdline;
var
counter : integer;
begin
writeln ('Program fetches command line arguments and outputs one per line');
writeln ('Max length of each argument is ',Max_Length:1,' characters');
for counter := 0 to ParamCount-1 do
writeln ('Command line arg ',counter:1,' is "',paramstr(counter),'"');
end.
<******************end text here****************>
------------------------------------------------------
This message sent using the FirstClass SMTP/NNTP Gateway.
From:
Choate Rosemary Hall
333 Christian St.
Wallingford, CT. 06492