AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.04.2013, 19:25   #1  
leot is offline
leot
Участник
 
3 / 10 (1) +
Регистрация: 02.04.2013
Доброго времени суток. Подскажите пожалуйста каким automation лучше воспользоваться? Суть проблемы в том что нужно получать данные по запросу на определенный адрес. Данные генерируются просто текстом без всяких тегов. Пробывал работать XML automation - данные грузяться, но как добраться до данных в виде текста без узлов?
Старый 02.04.2013, 19:50   #2  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
если через 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  
leot is offline
leot
Участник
 
3 / 10 (1) +
Регистрация: 02.04.2013
Не обязательно через 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  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Вы забыли вызвать команду 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  
leot is offline
leot
Участник
 
3 / 10 (1) +
Регистрация: 02.04.2013
Огромное спасибо! Получилось считывать, правда теперь с кодировкой проблемы
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:01.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.