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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2011, 20:56   #1
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию заглючил function Posex

Код:
function Posex(ss: String): String;
var
  B, E: Integer;
  TmpStr: String;
begin
  TmpStr := AnsiLowerCase(ss);
  B := Pos('src="http://', TmpStr) + 5;
  E := PosEx('"', ss, B);
  Result := Copy(ss, B, E - B);
end;
хорошё работает если требуемая ссылка одна на сайте, а как быть если их несколько и все одинаковы? Прост при таких условиях функция не работает
bulldog5293 вне форума Ответить с цитированием
Старый 16.02.2011, 17:48   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

выкини свою функцию, и используй сам PosEx в цикле.

ЗЫ: и не надо обзывать функции одинакого.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.02.2011, 21:22   #3
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Подскажите как правельней, пробывал переделать так
Код:
for b2:=0 to 1 do
  if Pos(Otvet, 'url=') > 0 then begin
   Bg := Pos(''src="http://', Otvet) + 5;
  Eg := PosEx(''', Otvet, Bg);
    Ur := Copy(Otvet, Bg, Eg - Bg);
ток не вышла

Последний раз редактировалось bulldog5293; 17.02.2011 в 21:40. Причина: забыл знак уточнить, конечный '
bulldog5293 вне форума Ответить с цитированием
Старый 18.02.2011, 13:09   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

просто пример использования
Цитата:
b:=1;
s:='пропустим ++первый ++++двойной второй ++последний';
while b>0 do
begin
b:=posEx('++',s, b);
if b>0 then begin
showmessage(copy(s,b, 20));
b:=b+2;
end;
end;
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pos, PosEX с отступом траблы bulldog5293 Работа с сетью в Delphi 1 19.12.2010 17:49
friend function (c++) zhenya.ya Помощь студентам 6 01.10.2010 10:04
VBA Function Jevgeni Microsoft Office Excel 1 04.06.2010 13:34
function c++ strabik Общие вопросы C/C++ 1 19.05.2010 13:44
recv Function Dimarik Win Api 2 04.04.2010 11:53