Последние записи
- Как запустить программу указанную в Edit.Text
- Скачать файл с использованием потока
- Поиск слова в Memo
- Распаковщик формата .img из GTA San Andreas
- Подсчет количества повторяющихся букв в файле
- Простейший скрипт загрузки картинки с помощью php
- Рассылка. Выпуск 154
- Получение картинки с веб-камеры
- Скопировать определённый кусок image
- Сделать printscreen экрана и сохранить
4th
Сен
Как сделать парсинг цитат с башорга?
Posted by Chas under Delphi, Пост-обзор
TzX
Вот, набросал на скорую руку. Используется Indy.
На форме Memo, Button, IdHTTP
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
IdHTTP1: TIdHTTP;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
Function podstr(str, pod: string): integer;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
i:integer;
begin
s:=idhttp1.Get('http://bash.org.ru'); //Грузим код страницы
for i:=1 to podstr(s,'утверждена') do //Определяем количество цитат на странице
Begin
delete(S,1,pos('утверждена',s)); delete(S,1,pos('</div>',S)+5); //Удаляем мусор до нужной цитаты
memo1.Lines.Add(copy(S,pos('<div>',S)+5,pos('</div>',S)-pos('<div>',S)-5)); //Сам парсинг и вывод
memo1.Lines.Add('');
End;
end;
function TForm1.podstr(str, pod: string): integer; //Возваращает число вхождений подстроки в строку
var
i,ln:integer;
begin
i:=0;
ln:=length(pod);
while (pos(pod,str)>0) do
begin
inc(i);
delete(str,pos(pod,str),ln);
end;
result:=i;
end;
end.
Пост написан при поддержке информационного сайта – Предприятия, Товары, Услуги России : ALL.BIZ: Россия, бытовая техника в Российской Федерации и не только.

