
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 :)
Комментарии (2)
RSS свернуть / развернутьFarik
Biotin
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.