Показать сообщение отдельно
  #2  
Старый 18.02.2009, 20:44
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну так и делай.
Идем по строке, как по массиву.
Если встречаем пробел, то говорим, что один параметр отловлен.
Если встречаем кавычку, то несмотря ни на что топаем до второй кавычки - еще один параметр. Так и считаем.

Код:
function CalcParams(AStr : String) : Integer;
var
  I : Integer;
begin
  Result := 0;
  I := 1;
  While I <= Length(AStr)Do
    Begin
       If AStr[i] = ' '
         Then
           Begin
             Inc(Result);
           End
         Else
           If AStr[i] = '"' Then
             Begin
               Inc(I);
               While (AStr[i] <> '"') And (I <= Length(AStr)) Do Inc(I);
             End;
       Inc(I);
    End;
  If AStr <> '' Then Inc(Result); // 1 param.
end;

Вроде так.
Ответить с цитированием