On-line:гостей 0. Всего: 0 [подробнее..]
АвторСообщение
moderator


Пост N:1511
Зарегистрирован:20.02.11
ссылка на сообщение  Отправлено:06.02.20 17:17.Заголовок:Курсы ЦБ РФ на дату


потребовалось часто и быстро дергать курсы валют с ЦБ РФ , за пару часов написал функцию. Может кому сгодиться
на оригинальность не претендую , но работает . Возвращает массив значений на дату .
 
FUNC GetCBR( dDate)
LOCAL oHttp, cHtml, oNode, oDoc, oVal, oIterator, oCurrent
LOCAL aArray := {}
LOCAL cNumCode, cCharCode ,cNominal, cName, cValue
LOCAL aCur := {}
LOCAL cDate := StrZero(Day( dDate ),2,0) + "/" + StrZero(month( dDate ),2,0) + "/" + StrZero(year( dDate ),4,0)

oHttp := TIpClientHttp():new( "http://www.cbr.ru/scripts/XML_daily.asp?date_req=" + cDate )
IF ! oHttp:open()
MsgBox( "Connection error:", oHttp:lastErrorMessage() )
RETURN {}
ENDIF

cHtml := oHttp:readAll()
oHttp:close()
oDoc := TXMLDocument():New( cHtml, 8 ) // см. hbxml.ch
IF oDoc:nError != 0
MsgBox( "xml file parsing error " + hb_ntos( oDoc:nError ) )
RETURN {}
ENDIF

oVal := oDoc:findfirst( "Valute" )
IF oVal == NIL
MsgBox( "no Valute found" )
RETURN {}
ENDIF

DO WHILE .T.

oIterator := TXMLIterator():New( oVal )

DO WHILE .T.
oCurrent := oIterator:Next()
IF oCurrent == NIL
EXIT
ELSE

switch oCurrent:cName
case "CharCode"
cCharCode := oCurrent:cData
exit
case "NumCode"
cNumCode := oCurrent:cData
exit
case "Nominal"
cNominal := oCurrent:cData
exit
case "Name"
cName := oCurrent:cData
exit
case "Value"
cValue := CharRepl(",", oCurrent:cData, ".")
exit
end switch

ENDIF

ENDDO
AAdd(aCur, {cCharCode, cNumCode, Val(cNominal), cName, Val(cValue)} )
oVal := oDoc:findnext()
IF oVal == NIL
EXIT
ENDIF
ENDDO
RETURN aCur


Спасибо: 1 
ПрофильЦитата Ответить
Ответов -30 ,стр: 1 2 All [только новые]





Пост N:3039
Зарегистрирован:17.02.12
ссылка на сообщение  Отправлено:09.02.20 17:12.Заголовок:PS Потерял ф-ю *--..


PS
Потерял ф-ю Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N:6582
Зарегистрирован:12.09.06
ссылка на сообщение  Отправлено:10.02.20 09:56.Заголовок:SergKis пишет: Изме..


SergKis пишет:

 цитата:
Изменения ch файла показаны на версию Минигуи 2.07.
prg файл взял от hmg 20.01 и наложил из своей версии



А почему эти изменения нельзя добавить в основную версию МиниГуи ?
Это же всем тоже будет удобно.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N:3043
Зарегистрирован:17.02.12
ссылка на сообщение  Отправлено:10.02.20 11:49.Заголовок:Andrey пишет А почем..


Andrey пишет
 цитата:
А почему эти изменения нельзя добавить в основную версию МиниГуи ?


Повторю, у меня нет и не будет bcc 5.8, потому последние hmg только скачиваю.
Могу сделать, отладить в версию hmg 19.09 вместе с примером

Спасибо: 0 
ПрофильЦитата Ответить



Пост N:3045
Зарегистрирован:17.02.12
ссылка на сообщение  Отправлено:10.02.20 12:57.Заголовок:SergKis пишет Могу с..


SergKis пишет
 цитата:
Могу сделать, отладить в версию hmg 19.09 вместе с примером


Тут для hmg 19.09, если интересно https://TransFiles.ru/ff1ig

Спасибо: 0 
ПрофильЦитата Ответить



Пост N:3046
Зарегистрирован:17.02.12
ссылка на сообщение  Отправлено:10.02.20 14:01.Заголовок:PS В CBru.prg надо п..


PS
В CBru.prg надо поправить (в моей версии объект дает :ClientHeight уже без :StatusBar:Height)
 
nW := oWnd:ClientWidth - nX * 2
nH := oWnd:ClientHeight - nY - oWnd:StatusBar:Height
...


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N:6584
Зарегистрирован:12.09.06
ссылка на сообщение  Отправлено:10.02.20 15:59.Заголовок:SergKis пишет: Повт..


SergKis пишет:

 цитата:
Повторю, у меня нет и не будет bcc 5.8, потому последние hmg только скачиваю.
Могу сделать, отладить в версию hmg 19.09 вместе с примером


Так я беру и правлю пути под BCC 5.5.1, и всех делов то...
Под bcc 5.8 у меня тоже не всё компилирует, сборщик ресурсов глючит.

SergKis пишет:

 цитата:
Тут для hmg 19.09, если интересно


Конечно интересно.
Странно, под 20.01 (Update 3) не работает...
Собрал и вылет с ошибкой:
 
Error BASE/1066 Argument error: conditional Args: [1] = U
--------------------------------- Stack Trace ---------------------------------
Called from TSBROWSE:MOUSEMOVE(9574) in module: h_tbrowse.prg
Called from TCONTROL:HANDLEEVENT(913) in module: TControl.prg
Called from TSBROWSE:HANDLEEVENT(8687) in module: h_tbrowse.prg
Called from EVENTS(95) in module: h_events.prg
Called from DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(1494) in module: h_windows.prg
Called from DOMETHOD(5379) in module: h_controlmisc.prg
Called from MAIN(127) in module: CBru.prg


А понял в чём ошибка. Добавил в проект h_tbrowse.prg и всё заработало...
А в стандартный МиниГуи добавить нельзя эти изменения из h_tbrowse.prg ?
Григорий, посмотри пожалуйста разницу в h_tbrowse.prg !

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N:1652
Зарегистрирован:11.02.10
ссылка на сообщение  Отправлено:10.02.20 17:48.Заголовок:Andrey пишет: в ста..


Andrey пишет:

 цитата:
в стандартный МиниГуи добавить нельзя эти изменения из h_tbrowse.prg ?


Добавил эти изменения, за исключением обработки символов ";" и "\" в заголовках и персональных установок для Tbrowse, которые есть в коде.
Собрал этот пример - работает (и выглядит) идентично оригиналу.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N:3047
Зарегистрирован:17.02.12
ссылка на сообщение  Отправлено:10.02.20 18:53.Заголовок:gfilatov2002 пишет Д..


gfilatov2002 пишет
 цитата:
Добавил эти изменения


Поправить надо
 
Function _DefineTBrowse ( ControlName, ParentFormName, nCol, nRow, nWidth, nHeight,;
...
oBrw:InsColumn( nColNumber, oCol )

oBrw:nCell := nColNumber + 1
oBrw:nFreeze := nColNumber

oBrw:lLockFreeze := .T.

IF HB_ISNUMERIC(nW) .and. nW > 0
oBrw:GetColumn(nColNumber):nWidth := nW
ENDIF
...


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N:1653
Зарегистрирован:11.02.10
ссылка на сообщение  Отправлено:10.02.20 22:09.Заголовок:SergKis пишет: Попр..


SergKis пишет:

 цитата:
Поправить надо


Поправил. Благодарю за помощь

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N:6585
Зарегистрирован:12.09.06
ссылка на сообщение  Отправлено:10.02.20 22:52.Заголовок:gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Собрал этот пример - работает (и выглядит) идентично оригиналу.


Классно ! Ждем с нетерпением новую версию !

Спасибо: 0 
ПрофильЦитата Ответить
Ответов -30 ,стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
-участник сейчас на форуме
-участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 508
Права: смайлыда,картинкида,шрифтыда,голосованиянет
аватарыда,автозамена ссылоквкл,премодерацияоткл,правканет