02.04.2013, 19:25 | #1 |
Участник
|
Доброго времени суток. Подскажите пожалуйста каким automation лучше воспользоваться? Суть проблемы в том что нужно получать данные по запросу на определенный адрес. Данные генерируются просто текстом без всяких тегов. Пробывал работать XML automation - данные грузяться, но как добраться до данных в виде текста без узлов?
|
|
02.04.2013, 19:50 | #2 |
Участник
|
если через xmlhttp, то нужно XMLHTTP.responseXML преобразовать в поток хотя бы
у меня проще задача стояла, нужно было сохранить даже если это не xml, нашел на vb код и оформил в библиотеку Код: Public Function SaveWrongFile(CurrXmlHttp As XMLHTTP40, FileName As String, ByRef Errorno As Long, ByRef Errortext As String) As Boolean Dim vFF As Long, oResp() As Byte Errorno = 0 Errortext = "" oResp = CurrXmlHttp.responseBody 'Create local file and save results to it vFF = FreeFile On Error GoTo Err Open FileName For Binary As #vFF Put #vFF, , oResp Close #vFF SaveWrongFile = True Exit Function Err: SaveWrongFile = False Errorno = Err.Number Errortext = Left(Err.Description, 250) End Function |
|
03.04.2013, 10:54 | #3 |
Участник
|
Не обязательно через XML и данные точно не в этом формате. Просто получить данные с сайта запросом. Данные формируются в виде текста. Потом этот текст парсить и сохранять в таблицу.
Пытался сделать так: CREATE(XMLHTTP); XMLHTTP.open('Get',url); tempstr:=XMLHTTP.responseText; Stream1:=XMLHTTP.responseStream; CLEAR(XMLHTTP); выводит ошибку что Данные для завершения этой операции еще не доступны. если написать XMLHTTP.open('Get',url,0); то "Неизвестная ошибка" |
|
03.04.2013, 11:51 | #4 |
Участник
|
Вы забыли вызвать команду send.
Код: IF NOT ISCLEAR(XMLHTTP) THEN CLEAR(XMLHTTP); CREATE(XMLHTTP); XMLHTTP.open('GET', url , FALSE); // последний параметр отвечает за синхронный или асинхронный режим. XMLHTTP.send(); IF XMLHTTP.status<>200 THEN BEGIN ERROR(STRSUBSTNO('Получение файла %1. '+ 'Ошибка HTTP %2: %3', url ,XMLHTTP.status, COPYSTR(XMLHTTP.statusText,1,230))) END; |
|
03.04.2013, 14:50 | #5 |
Участник
|
Огромное спасибо! Получилось считывать, правда теперь с кодировкой проблемы
|
|