|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Курс Валю с сайта ЦБРФ WSDL(SOAP)
Может быть кому-то пригодится.
Получение курса валют (в примере EUR) с помощью веб сервиса с сайта ЦБРФ. ++ хотелось бы обсудить код и тот факт, что память улетучивается если эту процедуру вызывать и вызывать... и вызывать. Где-то в Uses: Код:
uses ... DailyInfo, XSBuiltIns, Xml.XMLIntf, Xml.XMLDoc, Xml.xmldom, Xml.Win.msxmldom; Код:
var XSDate: TXSDateTime; I: Integer; begin with TXMLDocument.Create(nil) do try Active := true; XSDate := TXSDateTime.Create; with XSDate do try AsUTCDateTime := Date; DocumentElement := GetDailyInfoSoap() .GetCursOnDateXML(XSDate).XMLNode; for I := 0 to DocumentElement.ChildNodes.Count - 1 do begin if DocumentElement.ChildNodes[i].ChildNodes.FindNode('VchCode') .Text = 'EUR' then Memo1.Lines.Add('EUR:' + DocumentElement.ChildNodes[i] .ChildNodes.FindNode('Vcurs').Text); end; finally Free; end; finally Free; end; |
#2
|
||||
|
||||
По-моему, вызов напрямую TXMLDocument.Create считается дурным тоном. В конце модуля XMLDoc предусмотрена куча процедур, создающих XMLDocument и возвращающих их в качестве интерфейса. Далее везде в процедуры и методы нужно передавать интерфейс.
Не стоит путать форумы с богадельнями. © Bargest |