Загрузка курса валют Национального банка Украины

Вниманию предлагается набор функций для загрузки в Terrasoft 3.X актуального курса доллара к гривне по версии Нацбанка Украины. Можно получать как официальный, так и средневзвешенный рыночный курс.
 Национальный банк Украины

Функция непосредственного получения курса. Если входной параметр true – получает официальный курс, если false или без параметра – средневзвешенный.

Результат - объект с двумя полями. Rate – количество украинских гривен за 1 доллар США (например, 7.993). Date – указанная на сайте дата этого курса. Для официального – следующий рабочий день, для среднего – предыдущий.

function GetUSDRate(IsOfficial) {
        try {
            var Result = new Object();
                var webAddress = 'http://bank.gov.ua/control/uk/index';
                var xmlHttpReq = new ActiveXObject("MSXML2.XMLHTTP.6.0");
                xmlHttpReq.open("GET", webAddress, false);        
            xmlHttpReq.send();
            var HtmlText = xmlHttpReq.responseText.replace(/\s/g, "");
            if (IsOfficial) {
                var BeginText = '100 ДоларівСША';
                var EndText = '100 Євро';
               
                } else {
                        var BeginText = '-->грн.за100доларівСША';
                        var EndText =  '
Детальніше...';
                }

                var BeginIndex = HtmlText.indexOf(BeginText)+ BeginText.length;
                var EndIndex = HtmlText.indexOf(EndText);
            var HtmlFragment = HtmlText.substring(BeginIndex, EndIndex);
                var Rate = parseFloat(HtmlFragment);
                if (isNaN(Rate)) {
                        Log.Write(2, 'Ошибка при получении курса Нацбанка');
                        return null;
                }
                Result.Rate = Rate/100;
            if (IsOfficial) {          
                BeginText = 'Офіційнийкурсгривнідоіноземнихвалютз14.00';
                EndText = '';
                } else {
                    BeginText = 'Середньозваженийкурснаміжбанківськомуринку(начасвстановленняофіційногокурсугривні)';
                    EndText = '

Нравится

Поделиться

4 комментария

Александр, спасибо!
Правильно ли я понимаю, что функция рассчитана на текущую разметку официального сайта НБУ и Вы будете следить за ее изменениями, внося соответствующие правки в свое решение?

Да, так и есть. У НБУ, в отличие от ЦБРФ, нет публичного XML API.
За полгода дизайн сайта НБУ не менялся, пока работает нормально.

Александр! функция перестала работать!

выдает сообщение: "Ошибка при получении курса Нацбанка"

Поправьте скрипт как можно скорее!
Спасибо.

Исправлено.

Показать все комментарии