Viktor1703
AutoIT Гуру
- Сообщения
- 1,535
- Репутация
- 413
Код:
#Include <Array.au3>
;$aRate[n][0] = Цифровой код валюты
;$aRate[n][1] = Буквенный код валюты
;$aRate[n][2] = Номинал
;$aRate[n][3] = Валюта
;$aRate[n][4] = Значение
$aRate = GetRateOfExchange()
If IsArray($aRate) Then
_ArrayDisplay($aRate)
EndIf
Func GetRateOfExchange($iTimeout = 5000)
Local $aRates[1][5], $sUrl, $iTimer, $sXml, $aCourse, $aData
$sUrl = 'http://www.cbr.ru/scripts/XML_daily.asp'
$iTimer = TimerInit()
Do
$sXml = BinaryToString(InetRead($sUrl, 1))
If ($sXml <> '') Then
$aCourse = StringRegExp($sXml, '(?is)<valute.*?>(.*?)</valute>', 3)
If ((Not @error) And IsArray($aCourse) And (UBound($aCourse) > 0)) Then
For $i = 0 To Ubound($aCourse) -1
$aData = StringRegExp($aCourse[$i], '<.*?>(.*?)</.*?>', 3)
If ((Not @error) And IsArray($aData) And (UBound($aData) > 0) And (UBound($aData) <= 5)) Then
$aRates[0][0] += 1
ReDim $aRates[$aRates[0][0] + 1][5]
For $x = 0 To UBound($aData) -1
$aRates[$aRates[0][0]][$x] = $aData[$x]
Next
EndIf
Next
EndIf
ExitLoop
EndIf
Until (TimerDiff($iTimer) >= $iTimeout)
Return $aRates
EndFunc