Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Товарищи, курсы валют! Добавлено: 09.08.04 08:57  

Автор вопроса:  Mufasa | Web-сайт: webpricols.narod.ru
Давно был такой вопрос и вот я его задал, как узнпть курсы валют. Пример скачал, а он не фурычит :)! Какуюто чепуху выдаёт!

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 09.08.04 09:14
Берешь любую программулину, которая вытаскивает курс, настраиваешь её на winsock-server на своем компьютере, запускаешь - смотришь... Берешь полученный запрос из winsock-сервера, ставишь его в какой-нить клиент, допустим MS IE, подключаешься к сети, запрашиваешь - получаешь результат. Всё - анализируй, пиши программу, которая из сети будет вытаскивать валюты :) Был у меня где-то готовый запрос к базе данных www.cbr.ru - это самый официальный в России источник курсов валют. Если сильно-сильно-сильно надо, поищу дома и завтра отправлю.

P.S. А если есть готовый пример, зачем тебе тогда программить? Свой копирайт на чужой код ставить? Или чисто для "домашних нужд"? =) Удачи!

Ответить

Номер ответа: 2
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #2
Добавлено: 09.08.04 12:14
Нужно взять любой сайт, который предоставляет курс, и можно парсить его страничку ;)

Вот можно привести такой пример, правдо писал я его очень давно, и он глючноват... Да и файл лучше бы не сохранять а прямо в памяти обрабатывать, но уж совершенствовать-то я думаю сам будешь...

Возможно он и работать-то не будет, я его писал ну очень давно ;)


----------------------------

Option Explicit 'Обязательно требует объявление всех переменных
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
        ;(ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, _
        ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long 'Апи-функция для сохранения странички на винт

Private Function GetFileData(sLocalPath As String, Optional URL As String) As String 'Получение содержимого файла
    If Not Len(URL) = 0 Then 'Если адресс не указан, возможно получение данных из уже существующего файла
        If Not URLDownloadToFile(0, URL, sLocalPath, 0, 0) = 0 Then 'Если файл не удалось загрузить, выходим из функции
            Exit Function
        End If
    End If
    ;Dim nf As Integer: nf = FreeFile 'Определяем номер открытого файла
    Open sLocalPath For Binary Access Read As nf 'Открываем файл для чтения
        GetFileData = Space$(LOF(nf)) 'Узнаем длинну файла
        Get nf, , GetFileData 'Загрузка всего файла
    Close nf 'Закрытие файла
End Function

Private Sub Eregi(sTextForFind As String, sStartFind As String, sEndFind As String, sArray() As String) 'Замена функции eregi, встроенной в VB такой функции нет!
    ;Dim iNum1 As Long, iNum2 As Long 'Переменные для номеров символов
    ;Do 'Циклом начинаем сканировать файл
        iNum1 = InStr(iNum1 + 1, sTextForFind, sStartFind, vbTextCompare) + Len(sStartFind) 'Находим номер символа конца искомой строки
        If Not iNum1 = 0 Then 'Если номер символа строки найден, то...
            iNum2 = InStr(iNum1, sTextForFind, sEndFind, vbTextCompare) 'Ищем номер символа окончания нужных нам данных
            ReDim Preserve sArray(Count(sArray) + 1) 'Изменяем границы массива
            sArray(UBound(sArray)) = Mid(sTextForFind, iNum1, iNum2 - iNum1) 'Присваиваем значение строки между найденными строками
        End If
        ;DoEvents 'Позволяет использовать что-то вроде многопоточности
    Loop Until InStr(iNum1 + 1, sTextForFind, sStartFind, vbTextCompare) = 0 'Повторяем цикл до конца файла...
End Sub

Private Function Count(ArrayItem() As String) As Long 'Функция, возвращающая верхнюю границу массива
    On Error GoTo er
    Count = UBound(ArrayItem)
Exit Function
er:
    Count = -1
End Function

Public Sub Main() 'Использование выше написанных функций
    ;Dim DataArray() As String, CurrArray() As String, sFileData As String 'Массивы и переменные, для работы
    sFileData = GetFileData("c:\tmp1.htm", "http://www.abnews.ru/";) 'Загружаем файл из инета и сохраняем его на диск
    
    If Len(sFileData) = 0 Then Exit Sub 'Если длинна файла - нулевая, выходим
    
    Eregi sFileData, "</td><TD class=tab0 align=right width=40>&nbsp;", "&nbsp;", DataArray 'Ищем строки для даты
    Eregi sFileData, "USD</td><TD class=tab2>&nbsp;", "&nbsp;", CurrArray 'Доллар на сегодня
    Eregi sFileData, "&nbsp;</td><TD class=tab2>", "</td></tr>", CurrArray 'Доллар на завтра
    
    ;Dim sDate As String 'Переменная для даты, VB не может возвратить дату в формате дд.мм
    If Len(Day(Date)) = 1 Then sDate = "0" & Day(Date) Else sDate = Day(Date) 'Если число состоит из 1-го знака, то перед ним ставим ноль
    If Len(Month(Date)) = 1 Then sDate = sDate & ".0" & Month(Date) Else sDate = sDate & "." & Day(Date)
    
    ;Dim i As Integer 'Переменная для цикла
    For i = 0 To 1 'Повторяем 2 раза
        If DataArray(i) = sDate Then MsgBox "Текущий курс: " & CurrArray(i) 'Если дата совпадает, говорим текущий курс
    Next
    If MsgBox("Удалить закаченный файл 'c:\tmp1.htm' ?", vbQuestion Or vbYesNo) = vbYes Then
        Kill "c:\tmp1.htm"
    End If
    For i = 0 To 1 'Повторяем 2 раза
        MsgBox "Текущий курс: " & CurrArray(i)
    Next
End Sub

Ответить

Номер ответа: 3
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #3
Добавлено: 09.08.04 12:33
Качай вот это (в конец адреса подставляй нужную дату):
http://www.cbr.ru/scripts/XML_daily.asp?date_req=02.02.2004
и анализируй полученный XML.

Ответить

Номер ответа: 4
Автор ответа:
 Mufasa



Вопросов: 19
Ответов: 63
 Web-сайт: webpricols.narod.ru
 Профиль | | #4
Добавлено: 09.08.04 12:59
Срасиба всем! :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам