Модуль PARSERS
Разбор параметров для утилит с командной строкой
(Объектно-ориентированный парсер командной строки.
Для написания программ, по набору ключей сравнимых
с ARJ и PKUNZIP)
Модуль содержит средства для разбора строки параметров,
традиционно применяемых для утилит с командной строкой.
Он позволяет использовать как ключи в командной строке, так и
файл конфигурации, в котором заданы ключи по умолчанию.
Для разбора командной строки необходимо создать объект
типа TParser, затем с помощью метода Insert вставить в него все
ключи и параметры, которые могут встретиться в командной
строке, а затем вызвать процедуру ParseCommandLine или
ParseConfigFile. Результаты разбора будут запомнены в
статических переменных вашей программы, которые были переданы
объектам-насленикам TOption при их инициализации.
Пример:
Const A:Boolean=True;
B:Boolean=False;
C:Boolean=False;
S:String='Заголовок';
var FileName:String;
P:PParser;
begin
P:=New(PParser,Init);
P^.Insert(New(POffKey,Init('A',@A)));
P^.Insert(New(POnKey,Init('B',@B)));
P^.Insert(New(POnOffKey,Init('C',@C)));
P^.Insert(New(PStringKey,Init('S',@S)));
P^.Insert(New(PParameterKey,Init(A,True)));
ParseCommandLine(P);
Dispose(P,Done);
Результаты работы этой программы будут таковы:
Если в командной строке встретится опция /A, то значение
переменной A будет установлено в False.
Если попадется /B, то B будет установлено в TRUE.
Если встретится /C+ или /C- то C получет значение
соответственно True или False, а появление /C без плюся или
минуса вызовет сообщение об ошибке.
Опция /S, сопровождаемая текстом в кавычках, например
/S"Title" заменит значение переменной S на этот текст.
Первый параметр, не имеющий префикса / или - будет присвоен
переменной FileName, а если такого не окажется, то будет
выданно сообщение об ошибке, так как он считается обязательн
|