1 / 1 / 2
Регистрация: 13.01.2014
Сообщений: 30
|
||||||
1 | ||||||
CreateOleObject('InternetExplorer.Application') ошибка invalid variant operation14.10.2015, 20:48. Показов 2574. Ответов 8
Метки нет (Все метки)
Доброго времени суток!
Решил написать небольшую программу-анализатор информации на странице вот код:
Он опасен тем что не определен и очень странно себя ведет, например если выполнить этот код то с вероятностью 50% вы получите ошибку invalid variant operation а Debug напишет следующее сообщение: Exception class EVariantInvalidOpError with message 'Invalid variant operation'. Но в редких случаях ошибки нет и я получаю то что нужно В чем причина? P.S. также на появление ошибки влияют переменные с другим типом(не Variant) output,HTML: string; P.S.S Версия Delphi XE4 Добавлено через 6 минут Также если есть предложение что использовать вместо InternetExplorer(для повышения скорости) пожалуйста поделитесь.
0
|
14.10.2015, 20:48 | |
Ответы с готовыми решениями:
8
invalid variant operation Ошибка: Invalid pointer operation Ошибка 'invalid pointer operation' Ошибка floating point invalid operation |
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
14.10.2015, 20:54 | 2 |
WebBrowser и InternetExplorer.Application - одни и те же фаберже, с видами соответственно в профиль и в анфас.
Для заколачивания гвоздей совершенно не обязательно использовать микроскоп (WebBrowser, он же InternetExplorer.Application) - для этого есть молоток (Indy TIdHTTP, Synapse THTTPSend)
0
|
1 / 1 / 2
Регистрация: 13.01.2014
Сообщений: 30
|
|
14.10.2015, 21:06 [ТС] | 3 |
Увы но я не зря написал про IE тк на сайт по дефолту написан на английском языке а приставка в URL: "?l=russian" переводит все содержимое на русский язык(скорее всего при помощи java)
Если использовать TIdHTTP просто выскакивает ошибка
0
|
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
14.10.2015, 21:09 | 4 |
Тогда какой смысл пытаться выковыривать из текста полученного документа JS-скрипт ?
0
|
1 / 1 / 2
Регистрация: 13.01.2014
Сообщений: 30
|
|
14.10.2015, 21:19 [ТС] | 5 |
Вы не поняли наверное(я и сам толком не понимаю как реализована смена языка на сайте) суть в том что при смене языка меняется наполнение документа
Если в indy обратиться к этой странице то indy не поймет что ему делать с этой частью: "?l=russian" и выдаст ошибку в TWebBrowser такого нет и он переведет страницу. Возможно я ошибаюсь и смена языка происходит с использованием чего-то другого, но то что indy не может его обработать уже проверено.
0
|
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
14.10.2015, 21:35 | 6 |
Проверил - никаких ошибок Инди не выдает
Честно возвращает текст страницы - и с тем самым аппендиксом в URL и без него Единственная разница - делал обычный запрос, а не через SSL, чтобы не городить огород
0
|
1 / 1 / 2
Регистрация: 13.01.2014
Сообщений: 30
|
|
14.10.2015, 21:56 [ТС] | 7 |
Хм..сам только что проверил, действительно нет ошибок.
Ошибки были когда использовал потоки Thread Удивительно что при этом апендиксе поток зависал а инди при этом писала Disconnect
0
|
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
14.10.2015, 21:58 | 8 |
0
|
1 / 1 / 2
Регистрация: 13.01.2014
Сообщений: 30
|
|
14.10.2015, 22:28 [ТС] | 9 |
Увы но это не отменяет проблему того что язык и тем самым контент не меняется
Можете сравнить <title> html браузера и инди, часть переводится а часть нет Есть идеи как это побороть?
0
|
14.10.2015, 22:28 | |
14.10.2015, 22:28 | |
Помогаю со студенческими работами здесь
9
Ошибка в DLL: 'Invalid pointer operation' XLApp:= CreateOleObject('Excel.Application'); Ошибка программы: "Invalid floating point operation" Invalid floating operation Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |