Вопрос пользователя заключается в поиске аналога библиотеки getopt для языка программирования Delphi, которая используется в C/C++ для удобной обработки параметров командной строки. В C/C++ getopt позволяет легко обрабатывать переключатели и значения, следующие за ними, что делает процесс парсинга параметров более простым и понятным. В Delphi, хотя существуют функции FindCmdLineSwitch и ParamStr, они требуют дополнительной обработки.
Альтернативный ответ
Существует реализация TGetOpt, которая утверждает, что
реализует вариант getopt для Delphi. Она практически совместима с POSIX, поддерживая длинные опции, обязательные, необязательные и без аргументов.
Вы можете найти её здесь. Обратите внимание, что TGetOpt входит в сборку полезных рутин для программ на Delphi.
Подтвержденный ответ
Также есть альтернативные варианты, такие как TsoCommandLineParser, который позволяет обрабатывать параметры командной строки в стиле, близком к getopt. Пример реализации:
TsoCommandLineParser = class
private
fArguments: TStringList;
public
constructor Create;
destructor Destroy; override;
function GetOpt(const pArgument: string; const pDefaultValue: string = ''): string;
end;
constructor TsoCommandLineParser.Create;
var
i: Integer;
begin
inherited Create;
fArguments := TStringList.Create;
for i := 1 to ParamCount do
begin
fArguments.Add(ParamStr(i));
end;
end;
destructor TsoCommandLineParser.Destroy;
begin
fArguments.Free;
inherited Destroy;
end;
function TsoCommandLineParser.GetOpt(const pArgument: string; const pDefaultValue: string = ''): string;
var
i: Integer;
begin
i := fArguments.IndexOfName(pArgument);
if i > -1 then
begin
Result := fArguments.ValueFromIndex[i];
end
else
begin
Result := pDefaultValue;
end;
end;
Альтернативы для дальнейшего изучения
"Gastown Delphi Command Line Parser" – был недавно открыт исходный код, доступен, например, на Torry's.
"getopts.pp" – файл из RTL FPC, реализующий getopt для Free Pascal, совместимый с Delphi 2009 и более поздними версиями.
TCommandParser – описан в статье EDN и доступен для скачивания на CodeCentral.
delphi-argparse – новый парсер командной строки, доступный на GitHub.
Атрибутно-ориентированный парсер для Delphi, описанный на The Delphi Geek.
Заключение
В зависимости от требований к проекту и личных предпочтений разработчика, можно выбрать один из предложенных вариантов для обработки параметров командной строки в Delphi. Все они предоставляют удобные инструменты для парсинга параметров, аналогичные getopt в C/C++.
Описание: Вопрос связан с поиском аналогов библиотеки `getopt` для языка программирования Delphi, чтобы обеспечить удобную обработку параметров командной строки, подобно тому, как это реализовано в C/C++.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.