Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.02;
Скачать: CL | DM;

Вниз

Ihtmldocumen2   Найти похожие ветки 

 
Opryshok ©   (2004-01-20 11:35) [0]

Доброе утро. мастера!

Вчера я задавал вопрос о парсинге ХТМЛ и дофорвардился до IHTMLDocument2.

Нашел следующий код для получения контента тэга <TITLE> в хтмл-файле:

var
IDoc : IHTMLDocument2;
Strl : TStringList;
strHTML : String;
v : Variant;
vTitle : string;
HTMLFileName: String;
begin
HTMLFileName := "d:\1.html";
Strl := TStringList.Create;
try
Strl.LoadFromFile(HTMLFileName);
Idoc:=CreateComObject(Class_HTMLDOcument) as IHTMLDocument2;
try
IDoc.designMode:="on";
while IDoc.readyState<>"complete" do
Application.ProcessMessages;
v:=VarArrayCreate([0,0],VarVariant);
strHTML := StringReplace(Strl.Text, #13#10, "<br>",
[rfReplaceAll]);
v[0]:= strHTML;
IDoc.write(PSafeArray(System.TVarData(v).VArray));
IDoc.designMode:="off";
while IDoc.readyState<>"complete" do
{!!!!!!!! ЗДЕСЬ ОШИБКА}
Application.ProcessMessages;
vTitle := iDoc.Title;
Label1.Caption := vTitle;
finally
IDoc := nil;
end;
finally
Strl.Free;
end;
end;

Так вот, если в хтмл-файле есть ошибка, то получаю

---------------------------
Error
---------------------------
A Runtime Error has occurred.
Do you wish to Debug?

Line: 1
Error: Syntax error
---------------------------
Yes No
---------------------------
столько раз, сколько ошибок в хтмлине. После всего этого получаю свой долгожданный тайтл.

ВОПРОС:
Можно избежать показывания этих месседжей? try ... except не помогает.

Спасибо за сотрудничество.


 
nikkie ©   (2004-01-20 15:22) [1]

половина кода просто булшит какой-то.

procedure ParseHTML(HTML: WideString);
var
Doc: IHTMLDocument2;
v: Variant;
begin
Doc := CreateComObject(Class_HTMLDocument) as IHTMLDocument2;
v := VarArrayCreate([0, 0], VarVariant);
v[0] := HTML;
Doc.write(PSafeArray(System.TVarData(v).VArray));

ShowMessage(Doc.title);
end;

заодно и subject не вылезает.


 
Opryshok ©   (2004-01-20 16:16) [2]

2 nikkie
Баааальшое спасибо за эезапл.



Страницы: 1 вся ветка

Текущий архив: 2004.02.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
1-2171
race1
2004-01-18 17:32
2004.02.02
tpaintbox.onpaint


3-1982
NickNaz
2003-12-17 11:22
2004.02.02
Фильтр


1-2156
OlegL
2004-01-21 17:03
2004.02.02
ComboBox


1-2196
Сережа
2004-01-20 21:38
2004.02.02
Таймер


8-2236
Sim
2003-09-16 20:07
2004.02.02
Фракталы (мн-во Мандельброта)