Загрузка курсов ЦБ с сайта.

Автор:Smolenkov
Дата:30.01.2004
Просмотров:5679
Скачиваний:2614
Оценка:, Оценок - 1
Сохранить в файле

Обсудить в форуме

Описание

Пример загрузки курсов валют с сайта www.cbr.ru

Текст примера

 /**********************************************
Импорт курсов ЦБ с сайта www.cbr.ru

Смоленков А.Д. КБ "Легион" Smolenkov@lgn.ru
**********************************************/
Import "..\\mac\\rslx.d32","..\\mac\\lgxs.d32";
/**/
{curdate}=date();
/**/
	_dd=trim(substr(string({curdate}),1,2));
	_mm=trim(substr(string({curdate}),4,2));
	_yyyy=trim(substr(string({curdate}),7,4));
	if (Strlen(_dd)==1)
		_dd="0"+_dd; 
	end;

	if(IsStandAlone()) /* 2-х звенка */
       		ob=ActiveX("Excel.Application");
	else /* 3-х звенка */
       		ob=TlgActiveX("Excel.Application",true);
	end;
	ob.DisplayAlerts = False;
	ob.Workbooks.Add;

	QueryTables = ob.ActiveSheet.QueryTables.Add("URL;http://www.cbr.ru/currency_base/D_print.asp?date_req="+_dd+"/"+_mm+"/"+_yyyy,ob.ActiveSheet.Range("A1"));
	QueryTables.Connection = "URL;http://www.cbr.ru/currency_base/D_print.asp?date_req="+_dd+"/"+_mm+"/"+_yyyy;
	QueryTables.Destination = ob.ActiveSheet.Range("A1");
        QueryTables.Name = "2004_1";
        QueryTables.FieldNames = True;
        QueryTables.RowNumbers = False;
        QueryTables.FillAdjacentFormulas = False;
        QueryTables.PreserveFormatting = True;
        QueryTables.RefreshOnFileOpen = False;
        QueryTables.BackgroundQuery = True;
        QueryTables.RefreshStyle = 1;/*xlInsertDeleteCells;*/
        QueryTables.SavePassword = False;
        QueryTables.SaveData = True;
        QueryTables.AdjustColumnWidth = True;
        QueryTables.RefreshPeriod = 0;
	QueryTables.WebSelectionType = 3/*xlSpecifiedTables*/;
	QueryTables.WebFormatting = 3 /*xlWebFormattingNone*/;
	QueryTables.WebTables = "3";
        QueryTables.WebPreFormattedTextToColumns = True;
	QueryTables.WebConsecutiveDelimitersAsOne = True;
        QueryTables.WebSingleBlockTextImport = False;
	QueryTables.WebDisableDateRecognition = False;
	QueryTables.WebDisableRedirections = False;

	QueryTables.Refresh;
	/*2004_1: получение данных...*/
	while(trim(ob.ActiveSheet.Range("A1").Value)=="2004_1: получение данных...") end;
	i=1;
	while(i<30)
		Range="A"+trim(string(i));
		u=int(ob.ActiveSheet.Range(Range).Value);
		if (u==840)
			_currate_=ob.ActiveSheet.Range("E"+trim(string(i))).Value; 
		elif(u==978)
			_curratee_=ob.ActiveSheet.Range("E"+trim(string(i))).Value;
		end;
		i=i+1;
	end;
	ob.Quit;

println({curdate});
println("Курс USD:",_currate_);
println("Курс EUR:",_curratee_);