Привет, Гость! Регистрация RSS
Среда, 24.04.2024
Главная » Файлы » Основные файлы сайта

Конвертер валют с точными курсами из интернета
[ Скачать с сервера (212.8 Kb) ] 27.01.2013, 14:25

Практически все знают, что такое конвертер валют. Есть много онлайн ресурсов, где можете посчитать некоторую суму долларов в рублях и т.д. Однако, чтобы провести такую операцию, Вам нужно открывать свой браузер, заходить на этот портал и после вводить свои цифры. Но я предлагаю самому написать собственную программу, которая запускалась бы прямо с рабочего стола, например, и сразу выдавала бы Вам результаты. Причем курсы валют программа будет использовать последние по данным ЦБ РФ. Как это сделать? Да не так уж и сложно. Просто пройдитесь по пунктам и поймете, что Вы сможете создавать подобного рода программы.

1. Подготовка формы

Откройте среду Delphi и создайте новый проект (new -> application). Затем поместите на форму след. компоненты:

Edit1, edit2, edit3   — для ввода/вывода денежных единиц;

Button1, button2    — (подробно рассмотрим в пункте 2, 3);

Label1, label2        — для вывода информации о курсах;

IdHTTP1 (находится на странице Indy Clients), memo1

                  — (подробно остановимся в пункте 2);

Расположите их по форме как показано на рисунке.

А теперь переходим к сложной части нашей работы. Первым делом объявим глобальные переменные usd и eur. 

var
   Form1: TForm1;
   usd, eur: currency;   
                                                 

Далее зададим первоначальные параметры. Для этого в событии OnCreate формы пропишем следующее:

procedure TForm1.FormCreate(Sender: TObject);
begin
  usd:=30.2065;
  eur:=40.4314;
  label1.Caption:='USD: '+floattostr(usd);
  label2.Caption:='EUR: '+floattostr(eur);
  memo1.visible:=false;
  edit1.Text:='';
  edit2.Text:='';
  edit3.Text:='';
end;

2. Получение точного курса ЦБ РФ из интернета

Чтобы получить точные курсы валют на сегодняшний день мы воспользуемся функцией Pars (); и сайтом www .currencyhistory .ru, где можем получить свежую информацию о денежных единицах.

Сейчас Вам нужно добавить на проект функцию Pars. Если Вы не знаете как это сделать,  тогда советую воспользоваться этой статьей. Надеюсь, у Вас не возникнет проблем с этим. 

А теперь открывайте свою форму и кликайте два раза на кнопку Курсы и в появившемся окне пропишите следующее:

procedure TForm1.Button2Click(Sender: TObject);
var
  i: byte;
  s: string;
begin
  memo1.Lines.Text:=idhttp1.get('http://www.currencyhistory.ru/');
  if memo1.Lines.text<>'' then begin
    s:='USD: '+pars('<b> USD </b>',memo1.text,'<')+
    '      EUR: '+pars('<b> EUR </b>',memo1.text,'<')+'`';
    for i:=1 to length(s) do
      if s[i]='.' then s[i]:=',';
    usd:=strtofloat(pars('USD: ',s,'      EUR: '));
    eur:=strtofloat(pars('      EUR: ',s,'`'));
    label1.Caption:='USD: '+floattostr(usd);
    label2.Caption:='EUR: '+floattostr(eur);
    end;
end;

Поясняю. По нажатию кнопки Ваш проект производит соединение с Веб-узлом и загружает в memo1 HTML код  страницы. Потом, благодаря нашей функции PARS, в переменную s присваивается значения курсов (выглядит примерно так: «USD: 8.8888EUR: 8.8888»). Далее эта строка, заключенная в переменную s обрабатывается с помощью цикла for, который в свою очередь заменяет символы точек (.) на запятые (,). Думаю, дальше уже понятно: переменная usd сохраняет в себе курс доллара из этой строки, а переменная eur – курс евро. И label1 и ..2 выводят эти информации.

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

3. Преобразование стоимости одной валюты в другой

После того как Вы проделали два этапа, и Ваша программа научилась получать точные цифры курсов, осталось Вам добавить последнюю, самую главную функцию: конвертацию валют. Собственно говоря, это и будет Вашим последним шагом, и программа будет готова.

И так, снова открывайте форму и на этот раз кликайте по кнопке Перевод. Думаю, Ваши математические навыки уже дали понять, что преобразование долларов в рублей будет составлять произведение курса на сумму первой валюты. Значит так и пропишем в коде: 

procedure TForm1.Button1Click(Sender: TObject); 
begin
  if edit1.text<>'' then
    begin
      edit2.Text:=floattostr(strtofloat(edit1.Text)*usd)+'p';
      edit3.Text:=floattostr(strtofloat(edit1.Text)*eur)+'p';
    end
  else begin
    edit2.Text:='';
    edit3.Text:='';
  end;
end;

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

Успехов Вам в создании новых программ!

Подпишись, чтобы получать свежие исходники!
Нравится
Категория: Основные файлы сайта | Добавил: Dark_Green | Теги: конвертер валют, pars
Просмотров: 19864 | Загрузок: 2767 | Комментарии: 8 | Рейтинг: 4.1/7

Другие примеры
Всего комментариев: 8
1 Вирус  
0
Интересно... Но трудно понять

2 Dark_Green  
0
Уточните, где вам было непонятно?

3 Василий  
0
http://calculat.ru/konverter-valyut - тут можно проверить работу программы. Курсы точные.

4 EN  
0
Здравствуйте! Не могу сообразить, как подключить еще одну валюту, тенге, например. Не поможете?

5 Dark_Green  
0
Аналогично, как предыдущие валюты (Доллар и Евро). Но самое главное, это Вам следует определиться, с какого сайта будете "тянуть" курсы. Естественно, там должны быть отображены курсы Тенге. Напишите, в чем конкретно Вы затрудняетесь?

6 EN  
0
Я совсем общее представление имею о программировании, так что даже сказать, в чем затрудняюсь... затрудняюсь). Пробовала аналогично с другими валютами прописать тенге в коде, не получается. А мне нужно, чтобы непременно три валюты было, кроме рубля. Буду думать дальше. Спасибо за статью! Таким, как я, очень полезная.

7 oleg  
0
Очень классная программа! А как с другими валютами,хочу взять гривны с приватбанка, но у меня выбивает ошибку? Как взять данные с другого сайта?

8 Dark_Green  
0
Аналогично. Ищете в HTML-коде страницы сайта то место, где публикуется данные курсов, потом, парсируя код страницы, выводите эти курсы валют у себя в программе. В статье же все описано. 
В коде сайта приватбанка, думаю, можно брать с этого места:

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]