Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2012, 14:49   #1
impulsgraw
Верховный Судья
Пользователь
 
Аватар для impulsgraw
 
Регистрация: 23.11.2010
Сообщений: 82
Вопрос PosOffset

Здравствуйте!
Вот ломаю голову над написанием функции, которая будет искать вхождение подстроки в строку при учёте номера вхождения (например: подстрока 'a1'; строка 'a1a1a1a1a1'; надо найти позицию третьего вхождения подстроки в строку, тоесть 'a1a1a1a1a1').
Никак не получается написать функцию.
impulsgraw вне форума Ответить с цитированием
Старый 03.01.2012, 15:01   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Нет, студенты по любому что-то курят...

А что Pos и PosEx(из StrUtils) уже отменили?
Человек_Борща вне форума Ответить с цитированием
Старый 03.01.2012, 15:03   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

используйте PosEx
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.01.2012, 15:06   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
function PosOffSet(const SubStr, S: string; Offset: Integer): Integer;
var i,j,k: Integer;
begin
  Result:=0;
  if Offset<1 then Exit;
  j:=1;
  for i:=1 to Offset do begin
    k:=PosEx(SubStr,S,j);
    if k=0 then Exit;
    j:=k+1;
  end;
  Result:=k;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.01.2012, 15:09   #5
impulsgraw
Верховный Судья
Пользователь
 
Аватар для impulsgraw
 
Регистрация: 23.11.2010
Сообщений: 82
По умолчанию

Serge_Bliznykov, спасибо.
Человек_Борща, 1)Я не студент. 2)Я не знал про PosEx(). 3)Иди и кури, тебя никто не держит...

Последний раз редактировалось impulsgraw; 03.01.2012 в 15:22.
impulsgraw вне форума Ответить с цитированием
Старый 03.01.2012, 15:14   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

2)а где StrEx?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.01.2012, 15:28   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
2)а где StrEx?
А где такая есть? Чет в Д7 не нашел. Или плохо искал?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц