1. 2xB28.04.2025 в 17:51от
Загрузка...
Загрузка...

Урок 2 : Первый парсинг текста | Delphi | by waTS

Тема в разделе "С/С++/Pascal/Delphi", создана пользователем ᴡᴀᴛs, 30.10.2014.

  1. ᴡᴀᴛs

    Bloody Corporation
    ᴡᴀᴛs

    Статус:
    Оффлайн
    Регистрация:
    01.09.14
    Сообщения:
    191
    Репутация:
    221 +/-
    Всем привет , с вами waTS и сегодня мы научимся парсить какой либо текст)
    Что нам нужно?
    Кидаем на форму :
    MEmo1
    Button1
    Приступим к коду
    var
    Http:THTTPSend;
    Html:TstringList;
    Parsing:string;
    begin
    Http:=THTTPSend.Create; // Создаем переменную Http - с помощью его мы будем отправлять запросы
    Html:=TStringList.Create; // Создаем переменную Html в ней будет храниться код HTML страници
    if Http.HTTPMethod('GET','http://www.yandex.ru/') then begin // Условие Если Запрос пройден то :
    html.LoadFromStream(http.Document); // Прогружаем Html код в переменную Html :D
    html.Text:=utf8toansi(html.Text); // Перекодировка в UFT8
    Parsing:=pars('link b-head-tabs__tab-link" id="tab-tv">',Html.Text,'</a></div>');// Парсинг
    smemo1.Lines.Add(Parsing); // Вывод Парсенного ТЕкста
    end else begin // Иначе выводим сообщение
    ShowMessage('Ошибка');
    end;

    end;
    function Pars(T_, ForS, _T: string): string;
    var a, b: integer;
    begin
    Result:='';
    if (T_='') or (ForS='') or (_T='') then Exit;
    a:=Pos(T_, ForS);
    if a=0 then Exit else a:=a+Length(T_);
    ForS:=Copy(ForS, a, Length(ForS)-a+1);
    b:=Pos(_T, ForS);
    if b>0 then Result:=Copy(ForS, 1, b-1);
    end;
    Bloody Company 2014
     
    Последнее редактирование: 30.10.2014
  2. Guy Fawkes

    Guy Fawkes

    Статус:
    Оффлайн
    Регистрация:
    20.09.13
    Сообщения:
    330
    Репутация:
    165 +/-
    вангую, странник. :laugh-3:
     
  3. ΣИIGMA

    няшка - кодеряшка
    ΣИIGMA

    Статус:
    Оффлайн
    Регистрация:
    18.08.14
    Сообщения:
    236
    Репутация:
    126 +/-
    Можно еще использовать регулярные выражение,тоже не хуже этой функции :dance4:
     
  4. DesHell

    Делай добро, и тебя затянет :)
    DesHell

    Статус:
    Оффлайн
    Регистрация:
    10.04.14
    Сообщения:
    331
    Репутация:
    547 +/-
    Посвятите незнающего.. - Для чего это нужно?:)
     
  5. ΣИIGMA

    няшка - кодеряшка
    ΣИIGMA

    Статус:
    Оффлайн
    Регистрация:
    18.08.14
    Сообщения:
    236
    Репутация:
    126 +/-
    что бы спарсить нужный вам текст, для дальнейшего использования в написание софта.:to_keep_order:
     
  6. ᴡᴀᴛs

    Bloody Corporation
    ᴡᴀᴛs

    Статус:
    Оффлайн
    Регистрация:
    01.09.14
    Сообщения:
    191
    Репутация:
    221 +/-
    След урок будет по регулярным выражениям)
     
  7. Нонеса

    Нонеса

    Статус:
    Оффлайн
    Регистрация:
    20.10.14
    Сообщения:
    224
    Репутация:
    94 +/-
    Спасибо большое за уроки.
    Хоть кто-то нормально объясняет
     
  8. Soviet

    Soviet

    Статус:
    Оффлайн
    Регистрация:
    19.10.14
    Сообщения:
    107
    Репутация:
    13 +/-
    Как по мне с "html.Text:=utf8toansi(html.Text); // Перекодировка в UFT8" utf8toansi означает перекодировку с утф8 в анси а не наоборот как ты написал, исправь в шапке.
     
  9. weath

    weath

    Статус:
    Оффлайн
    Регистрация:
    14.04.13
    Сообщения:
    226
    Репутация:
    90 +/-
    В чем здесь ошибка?
    [​IMG]

    исправил
     
    Последнее редактирование: 02.11.2014