AZN Converter.

Chox vaxtdir ki koddinge aid bir teze megale gorunmur. Chaliwag bunu dulezdek. Ona gore de gelin birlikde bir programm yazag. Menim en sevimli programming dillerden biri — Rubydir. Ruby chox gesheng ve lakonik bir dildir. Yukxiro Macumoto terefinden yaradilib. Etrafli wikipediada oxumag olar.
Bizim meqsedimiz ise www ile ishleyen ve lazim gelen bir program yazmagdir. Ela olardiki onu GUI(graphical user interface) ile temin edek. Program Valyutalari convert etmelidir. Yeni biz meblegi daxil etdikden sonra program onu AZN chevirmelidir. Ve valyutani hansi sa bir saytdan goturmelidir. Bunu uchun men Azerbaijan Beynalxalg Bankin — ibar.az sayti goturdum. Birinci ishimiz ele bu olmalidir. Gelin bunu uchun Rubyde kod yazag.
require 'open-uri' # www ile iwleyen bibliotekani goshag.
file=open('http://www.ibar.az/currency/') # burada fayl obyekte html seifeni yukleyek
string= file.readlines.join # ve butun seifeni bir string kimi duzeldib string adli obyekte verek
output = string.scan(/-?\d+\.\d+/) # regular extensions ile html filedan bize lazim gelen butun valutalari massivde saxlayag, yeni parsing edek.

Bura kimi, neticemiz bele olajag:

=> ["0.7867","0.7813" ...., "0.026"]
Burada texmini 50 valyuta gosterilejek.
Bize lazim olanlari massivde yerlerini hesablayib sechek — yeni USD, Euro ve RuR.

@usd = output[1].to_f
@euro = output[41].to_f
@rur = output[46].to_f

Massivde olanlar string kimi saxladigimiza gore, onlari avtomatik float numbere chevirdik.
Birinci esas hisseni yazdig. Kechek ikinji hisseye. Burada interface uchun biz Shoes GUIni istifade edek. Shoes chox asant ve maragli GUIdir ve yungul projektlerde istifade etmek olar.
Kodumuzu GUI daxil edib dizayn iwleri ile birlikde kodun galan hisselerini yazag. Converter.rb faylimiz:

require 'open-uri'
 Shoes.app(:title => "AZN Converter", #Shoes da teze applicationi yaradirig.
   :width => 340, :height => 320, :resizable => false) do #Onun hecmini daxil edirik
     background lightgrey #backgroundun rengi
     file=open('http://www.ibar.az/currency/') #Bu kodu yuxarida tegdim etdim.
	  string= file.readlines.join
	  output = string.scan(/-?\d+\.\d+/)
	  @usd = output[1].to_f
	  @euro = output[41].to_f
	  @rur = output[46].to_f
     stack :left => 120, :top => 10 do #dizayn elementi
     para "USD = #{@usd}" # valutalarini gostermek uchun
     para "Euro = #{@euro}"
     para "RuR = #{@rur}"
     end
     flow do #dizayn elementi
     para "Mebleg:"
     @e = edit_line :left => 70, :width => 100 #Mebelgi daxil etmek uchun bura yazmaliyig
     list_box :items => ["Euro","USD","RuR"],:left => 175, :width => 70, #Valutani list boxda sechmek uchun
     :choose => "USD" do |list|
     @volume.text = list.text #object arasi deyishmeler
     end
     end
	 button "Hesabla",:left => 250, :height => 28 do #Button duymesini elave edirik.
     if @e.text.to_f > 9999999 # sadece 7 regemden az olan meblegi hesablayag.
       alert " Chox boyuk hesab!" # eger chox olsa
     else  
     if @volume.text == "USD" 
	  @a.text = "#{@e.text.to_f * @usd}" #user USD sechende hesablama
	 elsif @volume.text == "Euro"
	  @a.text = "#{@e.text.to_f * @euro}" #Euro
	 elsif @volume.text == "RuR"
	  @a.text = "#{@e.text.to_f * @rur}" #Rubl
	 end
      end
	 end
       flow  do #Dizzayn elementi
       style(:margin_left => '120')
      @volume = para "#{@volume}" #Hansi Valyutani sechibse onu gosterir. 
      para " => "
     @a = para "0" #Netice.
     para "AZN"
       end
      para "Butun melumat Azerbaijan Beynalxag Bank saytindan elde olunur - www.ibar.az/currency/.
       Program License - BSD. 
       Site - myscript.biz." #Programa elave text melumati daxil edek.
 end
 

Shoesda programi achmag uchun Shoesi evvel kompyuterimize official saytdan yukleyek(Linux, Windows ve ya MacOS uchun). Sonra ise «open ann Aplication»u sechib bu faylimizi sechek ve program avtomatik achilajag. Ve ya avtomatic .rb faylimizi .exe ye chevirek ve onu sadeje buradan yukleyib achag.
Helelik program anjag bir teref convert edir, lakin gelen defe bunu bir neche valyutani convert etmeyini elave ederik. Ve bir neche fixleri — meselen Internetle elage yaranmadigi halda — alert messaginin gosterilmesi. Hem de dizayn iwleri :)
  • +1
  • 16 сентября 2011, 22:38
  • Biotin

Комментарии (2)

RSS свернуть / развернуть
+
0
Əfqan, sənin tətbiq etdiyin bu proqram desktop üçündür? İnternet üzərindən işləyir amma? Birdə yükləmək istədim, alınmır. Fayla keçid səhvdir
avatar

Farik

  • 17 сентября 2011, 15:04
+
0
Ups,sorry.Keçidi düzeltdim:) Bəli,desktop üçündür. İnternet lazımdır, çünki valyuta məzənnələri www.ibar.az/currency/ dən götürür.
avatar

Biotin

  • 17 сентября 2011, 16:25

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.