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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2011, 12:29   #1
Rey
Новичок
Джуниор
 
Регистрация: 26.06.2011
Сообщений: 2
По умолчанию Функция PosEx

Мне нужно со страницы сайта взять текст, который лежит между кодами.
для этого есть функция posex . может у кого-то есть простой пример или объяснение как ей пользоваться?
Rey вне форума Ответить с цитированием
Старый 28.06.2011, 14:53   #2
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

Из справки:
Код:
function PosEx(const SubStr, S: string; Offset: Cardinal = 1): Integer;
так что:
SubStr - что ищем
S - где ищем
Offset - начиная с какой позиции искать.
Результат - позиция первого вхождения SubStr или 0 если не нашли.

А как пользоваться? Элементарно, к примеру.
Дано: найти все позиции вхождения тега "<BR>" в текст.
Реализация (пишу сразу сюда, так что могут быть ошибки)
Код:
var
  StartPost : Integer;
  MyText : string;
begin
  MyText := 'записали сюда фиг его знает каакой текст';
  StartPos := 0; // присваеваем переменной стартовое значение.
  While true do // бесконечный цикл, выскакивать будем по условию
  begin
    startPos := PosEx('<BR>', MyText, StartPos + 1); // смысл такой, ищем '<BR>' начиная со следующей позиции после предидущего значения
    if StartPos > 0 then // чего-то нашли
      // записываем найденную позицию или еще чего
    else  // ничего не нашли
      Break; // значит выходим из цикла
    
  end;
end;
Пример для рекурсивного поиска всех вхождений, просто надо запомнить что функция позволяет искать начиная с определенной позиции, а как будете использовать - это уже Ваше дело
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Старый 29.06.2011, 12:03   #3
Rey
Новичок
Джуниор
 
Регистрация: 26.06.2011
Сообщений: 2
По умолчанию

а у меня вот такое дело. Есть на одном сайте сообщение. и мне надо вывести это сообщение в memo. то есть надо указать что между двумя тегами лежит сообщение и вывести в memo.
Rey вне форума Ответить с цитированием
Старый 30.06.2011, 12:35   #4
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

и в чем проблема?
Код:
startPos := PosEx('<тег_с_которого_начинается_нужный_текст>', MyText);
endPos := PosEx('<тег_которым_заканчивается_нужный_текст>', MyText, startPos);
text := Copy(MyText, startPos, endPos - startPos);
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Старый 09.03.2015, 18:18   #5
ujif
Пользователь
 
Регистрация: 24.02.2013
Сообщений: 28
По умолчанию

Спасибо Уважаемый Mifody за простое и внятное объяснение
этой хитроумной функции
ujif вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
заглючил function Posex bulldog5293 Работа с сетью в Delphi 3 18.02.2011 13:09
Pos, PosEX с отступом траблы bulldog5293 Работа с сетью в Delphi 1 19.12.2010 17:49
функция sanya94 Общие вопросы C/C++ 3 24.11.2010 16:32
Функция С++ slim>>> Помощь студентам 7 05.02.2010 19:31
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50