Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Получение параметров командной строки приложения

Delphi , ОС и Железо , DOS и Консоль

Получение параметров командной строки приложения

Автор: Dimka Maslov
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Получение параметров командной строки приложения

Зависимости: Windows, SysUtils
Автор:       Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург
Copyright:   Dimka Maslov
Дата:        29 марта 2003 г.
***************************************************** }

function Parameters: string;
var
  P: PChar;
begin
  P := GetCommandLine;
  if P^ = '"' then
  begin
    Inc(P);
    P := StrPos(P, '"');
    Inc(P);
  end
  else
    P := StrPos(P, ' ');
  Inc(P);
  Result := P;
end;

Here is the translation of the text into Russian:

Функция Parameters, предоставленная в этом коде, извлекает параметры командной строки приложения. Вот шаг за шагом, что функция делает:

  1. Функция инициализирует указатель P результатом GetCommandLine, который возвращает полную строку командной строки.
  2. Если первый символ командной строки - двойная кавычка (") , то это означает, что параметры командной строки заключены в кавычки, и функция должна пропустить их. Она делает это, увеличивая указатель P на один шаг, чтобы переместиться за открывающую кавычку, затем находит позицию закрывающей кавычки с помощью StrPos, и наконец, увеличивает P снова, чтобы указать на символ после закрывающей кавычки.
  3. Если первый символ не является двойной кавычкой, то это означает, что параметры командной строки разделены пробелами, и функция использует StrPos для нахождения позиции первого символа пробела.
  4. Функция затем увеличивает указатель P еще раз, чтобы указать на первый не-белый символ (или символ после закрывающей кавычки, если параметры были заключены в кавычки).
  5. Наконец, функция возвращает полученный результат, присваивая его переменной Result.

Альтернативное решение, использующее регулярные выражения для извлечения параметров командной строки:

function Parameters: string;
var
  P: PChar;
begin
  P := GetCommandLine;
  Result := RegExReplace(P, '^"*(.*) *"*$', '\1');
end;

Функция использует функцию RegExReplace из единицы RegExpr для извлечения параметров командной строки. Регулярное выражение ^"*(.*) *"*$ matches zero or more occurrences of double quotes followed by any characters (captured in group 1) followed by zero or more spaces, and then captures that group as the result. Это эффективно извлекает параметры командной строки, игнорируя любые заключенные кавычки.

Обратите внимание, что это альтернативное решение требует включения единицы RegExpr в список используемых единиц вашего проекта Delphi.

В статье "Получение параметров командной строки приложения" описано, как с помощью функции Parameters из библиотеки SysUtils получить список параметров, переданных в приложение через командную строку.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: DOS и Консоль ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:56:55/0.0036561489105225/0