Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
20 / 20 / 7
Регистрация: 18.02.2015
Сообщений: 304

Парсер, поиск непосредственно после найденного

17.06.2015, 23:06. Показов 1546. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот тут помогли, как создать парсер. Теперь вопрос
Распарсить строку с сайта


Я нашел строчку: <div class=\"tdl\">IP:</div>
Как мне на след. строчки взять этот параметр: <div class=\"tdr\">(.*?)</div>


\n тут не пашет... В принципе логично.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.06.2015, 23:06
Ответы с готовыми решениями:

как после найденного слова сохранить три строки после него
Допустим есть файл с определёнными слова, и файл с данными. Необходимо сравнить два файла и при совпадении слова из первого файла со вторым...

Поиск и подсветка найденного текста
Здравствуйте. Есть код поиска: For i = 0 To БилетDataGridView.ColumnCount - 1 For j = 0 To...

Поиск в тексте и сортировка найденного
# -*- coding: utf-8 -*- t= f=open('file4.txt', 'r') content = f.read() def fun (x,cont,r): first_point=cont.find('&quot;%s&quot;' % x) ...

8
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
17.06.2015, 23:20
Лучший ответ Сообщение было отмечено Appi как решение

Решение

Я бы вот так сделал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    std::auto_ptr<TStringStream> ss (new TStringStream("", TEncoding::GetEncoding(1251), true));
    IdHTTP1->Get("http://www.xn--c1adahg2atfb8hee9d.xn--p1ai/", ss.get());
    String One = ss->DataString;
 
    std::auto_ptr<TRegExpr> re (new TRegExpr);
    re->InputString = One;
    re->ModifierM = true;
    re->Expression = L"<div class=\"td[lr]\">(.*?)</div>";
    re->Compile();
    if(re->Exec(re->InputString))
    {
        do
        {
            Memo2->Lines->Add(re->Match[1]);
        }
        while(re->ExecNext());
    }
, что приводит к
Code
IP:
46.188.16.205:2302
Players:
0
Map:
Unknown
Time:
0
Online Players:
 
IP:
46.188.16.205:2342
Players:
0
Map:
Unknown
Time:
0
Online Players:
 
IP:
46.188.16.205:2102
Players:
72
Map:
Чернорусь_лето
Time:
3 мин.
Online Players:
, а уж как взять 2*i-1 и 2*i строки, я думаю, проблем не возникнет?
1
20 / 20 / 7
Регистрация: 18.02.2015
Сообщений: 304
17.06.2015, 23:31  [ТС]
Я пока только учусь работать с HTTP и тд... И его у меня нет TRegExpr, есть только TRegEx, TRegExOption(s)



Ошибка: [bccaarm Error] Main.cpp(126): use of undeclared identifier 'TRegExpr'
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
17.06.2015, 23:33
Я в предыдущей теме дал ссылку и объяснил, как подключить.
1
20 / 20 / 7
Регистрация: 18.02.2015
Сообщений: 304
18.06.2015, 00:39  [ТС]
А под линукс ядро данная библиотека есть? Ну то бишь под андроид.

Добавлено через 31 минуту
К сожалению этот способ не подходит.. Он только под Windows. Обычный RegEx поддерживает ядро Linux. Кто поможет с решением проблемы? Пожалуйста. Очень надо. И я просто не понимаю не много как работать с RegEx
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
18.06.2015, 00:58
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 std::auto_ptr<TStringStream> ss (new TStringStream("", TEncoding::GetEncoding(1251), true));
 IdHTTP1->Get("http://www.xn--c1adahg2atfb8hee9d.xn--p1ai/", ss.get());
 
 String One = ss->DataString;
 String expr = L"<div class=\"td[lr]\">(.*?)</div>";
 
 TRegExOptions reg_opt = TRegExOptions() << roIgnoreCase << roMultiLine;
 TMatchCollection m;
 
 if (TRegEx::IsMatch(One, expr, reg_opt))
 {
  m = TRegEx::Matches(One, expr, reg_opt);
 
  Memo1->Clear();
  for (int i=0; i<m.Count; i++)
   for (int j=1; j<m.Item[i].Groups.Count; j++)
    Memo1->Lines->Add(m.Item[i].Groups[j].Value);
 }
Добавлено через 1 минуту
http://www.webdelphi.ru/2010/0... zheniyami/
1
20 / 20 / 7
Регистрация: 18.02.2015
Сообщений: 304
18.06.2015, 01:03  [ТС]
Смог написать сам. Но по сравнению с этим кодом. Мой индуский быдлокод .
Сейчас попробуем решение. Спасибо.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
18.06.2015, 01:27
C++
1
2
3
4
5
6
7
8
    std::auto_ptr<TStringStream>ss(new TStringStream("", TEncoding::GetEncoding(1251), true));
    IdHTTP1->Get("http://www.xn--c1adahg2atfb8hee9d.xn--p1ai/", ss.get());
 
    String One = ss->DataString;
    TRegEx re(L"<div class=\"td[lr]\">(.*?)</div>", TRegExOptions() << roIgnoreCase << roMultiLine);
 
    for (TMatch match = re.Match(One); match.Success; match = match.NextMatch())
        Memo2->Lines->Add(match.Groups[1].Value);
, однако, делает то же самое...
2
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
18.06.2015, 01:46
volvo, однако, да.
что б мы без тебя делали

Добавлено через 47 секунд

Не по теме:

надо будет подробней почитать про этот TRegEx

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.06.2015, 01:46
Помогаю со студенческими работами здесь

Поиск по listbox и выделение найденного
Нужно сделать так, чтобы при вводе текста в textbox в listbox отображались строки содержащие введенное. Нужно сделать так чтобы поиск велся...

Поиск в массиве и вывод найденного
Всем добрый вечер, с наступившими выходными! Вот первый вопросик. Есть массив, содержится текст, каждая строка разделена...

DataGrid: поиск с подсветкой найденного
такс... dataGrid1 имеет неккую обсервэйбл коллекцию, содержащую имя и фамилию... В созданом новом окне мы вводим фамилию и жмём...

Поиск в DataGrid и закрашивание найденного
Есть такой лист: public int client_id; private string fam; private string name; private string otch; ...

Поиск по TextBox с выделением найденного
Всем привет. Пытаюсь организовать поиск по TexBox private void search() { if (txtSearch.Text.Length &lt; 5) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru