Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать следующее вхождение pos-a


Страницы:   1 2 3

WebSQLNeederrr ©   (2008-06-07 17:50:00) 

Единственное что приходит на ум это следующий алгоритм (задача найти второй пробел в предложении - то есть начало третьего слова):

i:=pos(str,' ');
substr:=copy(str,i,length(str)-i);
i:=pos(substr,' ');

Может есть более простой способ?


{RASkov}   (2008-06-07 17:57:00) [41]

> задача найти второй пробел в предложении - то есть начало третьего слова):

В RxLib и в ее RxStrUtils есть специальные функции для этого....


{RASkov}   (2008-06-07 17:54:00) [42]

D7 - StrUtils
До 7 вроде небыло её....

function PosEx(const SubStr, S: string; Offset: Cardinal = 1): Integer;
var
 I,X: Integer;
 Len, LenSubStr: Integer;
begin
 if Offset = 1 then
   Result := Pos(SubStr, S)
 else
 begin
   I := Offset;
   LenSubStr := Length(SubStr);
   Len := Length(S) - LenSubStr + 1;
   while I <= Len do
   begin
     if S[I] = SubStr[1] then
     begin
       X := 1;
       while (X < LenSubStr) and (S[I + X] = SubStr[X + 1]) do
         Inc(X);
       if (X = LenSubStr) then
       begin
         Result := I;
         exit;
       end;
     end;
     Inc(I);
   end;
   Result := 0;
 end;
end;


WebSQLNeederrr   (2008-06-07 17:52:00) [43]

нет, а в какон он модуле?


{RASkov}   (2008-06-07 17:50:00) [44]

Есть ли у тебя PosEx?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо