DmitryKz
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Ребята, подскажите, плиз, по такому моменту... Код: var idoc: IHTMLDocument2; procedure TForm1.Button1Click(Sender: TObject); var html : string; v : OleVariant; I : integer; begin IdHTTP1.HandleRedirects := True; html := IdHTTP1.Get('https://...'); idoc := coHTMLDocument.Create as IHTMLDocument2; v := VarArrayCreate([0,0],VarVariant); v[0] := HTML; idoc.write(PSafeArray(System.TVarData(v).VArray)); for I := 0 to idoc.all.length do begin // end; end; procedure TForm1.Button2Click(Sender: TObject); var I : Integer; begin for I := 0 to idoc.all.length do begin // end; end; | Здесь в первом обработчике не удается парсинг документа. После нажатия Button1 число элементов в idoc всего лишь 14, в то время как сам документ довольно большой. Перебор заканчивается где-то в заголовке. При попытке обращения к idoc.body возникает исключение. Но если после нажатия Button1, в обработчике которого, как видно загружается документ, нажать Button2, то все в порядке - документ весь, и число элементов для парсинга почти 3 тысячи, как и должно быть. Что происходит между нажатиями двух этих кнопок? Что нужно сделать, чтобы выполнить парсинг в одном обработчике? | Всего записей: 3142 | Зарегистр. 29-09-2005 | Отправлено: 16:27 05-01-2017 | Исправлено: DmitryKz, 16:32 05-01-2017 |
|