![]() |
|
|
#1 (permalink) |
|
Banlandı
![]() ![]() Üyelik tarihi: 22-11-2007
Nerden: napıcan ziyaretemi geLcen!!
Mesajlar: 4.542
Konular: 2724
Üye No: 11416
Ruh halim:
|
const
Birler : Array[0..9] of string = ('','one','two','three','four','five','six','seven ','eight','nine'); YirmiyeKadar : Array[0..19] of string = ('','one','two','three','four','five','six','seven ','eight','nine','ten','eleven','twelve','thirteen ','fourteen','fifteen','sixteen','seventeen','eigh teen','nineteen'); Onluklar : Array[2..9] of string = ('twenty','thirty','forty','fifty','sixty','sevent y','eighty','ninety'); implementation {$R *.dfm} function UcluyuCevir(CevirilecekSayi: Integer): string; var Donecek: String; begin Donecek := ''; if Length(IntToStr(CevirilecekSayi)) = 3 then // 33333333333333333333333333333 begin Donecek := Birler[StrToInt(Copy(IntToStr(CevirilecekSayi),1,1))]+'hundred'; if StrToInt(Copy(IntToStr(CevirilecekSayi),2,2)) < 20 then Donecek := Donecek + YirmiyeKadar[StrToInt(Copy(IntToStr(CevirilecekSayi),2,2))]; if StrToInt(Copy(IntToStr(CevirilecekSayi),2,2)) >= 20 then begin Donecek := Donecek + Onluklar[StrToInt(Copy(IntToStr(CevirilecekSayi),2,1))]; Donecek := Donecek + Birler[StrToInt(Copy(IntToStr(CevirilecekSayi),3,1))]; end; end; if Length(IntToStr(CevirilecekSayi)) = 2 then // 22222222222222222222222222222 begin if StrToInt(Copy(IntToStr(CevirilecekSayi),1,2)) < 20 then Donecek := Donecek + YirmiyeKadar[StrToInt(Copy(IntToStr(CevirilecekSayi),1,2))]; if StrToInt(Copy(IntToStr(CevirilecekSayi),1,2)) >= 20 then begin Donecek := Donecek + Onluklar[StrToInt(Copy(IntToStr(CevirilecekSayi),1,1))]; Donecek := Donecek + Birler[StrToInt(Copy(IntToStr(CevirilecekSayi),2,1))]; end; end; if Length(IntToStr(CevirilecekSayi)) = 1 then // 11111111111111111111111111111 begin if StrToInt(Copy(IntToStr(CevirilecekSayi),1,1)) = 0 then Exit; Donecek := Donecek + Birler[StrToInt(Copy(IntToStr(CevirilecekSayi),1,1))]; end; Result := Donecek; end; function YaziyaCevir(CevirilecekSayi: Real): string; var a,AlinacakYer,Bolum,Kalan,YaziUzunlugu: Integer; Yazi,Parca: String; begin if CevirilecekSayi = 0 then begin Result := 'Zero'; Exit; end; // Tamsayı kısmı ************************************************** *********** Yazi := ''; Bolum := Length(FloatToStr(int(CevirilecekSayi))) div 3; Kalan := Length(FloatToStr(Trunc(CevirilecekSayi))) mod 3; YaziUzunlugu := Length(FloatToStr(Trunc(CevirilecekSayi))); for a := 1 to Bolum do begin AlinacakYer := YaziUzunlugu-(a*3)+1; Parca := ''; Parca := UcluyuCevir(StrToInt(Copy(FloatToStr(CevirilecekSa yi),AlinacakYer,3))); if a = 1 then Yazi := Parca; if (a = 2) and (Parca <> '') then Yazi := Parca+'thousand'+Yazi; if (a = 3) and (Parca <> '') then Yazi := Parca+'million'+Yazi; if (a = 4) and (Parca <> '') then Yazi := Parca+'billion'+Yazi; if (a = 5) and (Parca <> '') then Yazi := Parca+'trillion'+Yazi; end; if Kalan > 0 then begin if a = 0 then Yazi := UcluyuCevir(StrToInt(Copy(FloatToStr(CevirilecekSa yi),1,Kalan))); if a = 2 then Yazi := UcluyuCevir(StrToInt(Copy(FloatToStr(CevirilecekSa yi),1,Kalan)))+'thousand'+Yazi; if a = 3 then Yazi := UcluyuCevir(StrToInt(Copy(FloatToStr(CevirilecekSa yi),1,Kalan)))+'million'+Yazi; if a = 4 then Yazi := UcluyuCevir(StrToInt(Copy(FloatToStr(CevirilecekSa yi),1,Kalan)))+'billion'+Yazi; if a = 5 then Yazi := UcluyuCevir(StrToInt(Copy(FloatToStr(CevirilecekSa yi),1,Kalan)))+'trillion'+Yazi; end; // Virgüllü kısmı ************************************************** ********** Parca := ''; a := Pos(',',FloatToStr(CevirilecekSayi)); if a > 0 then begin if Length(Copy(FloatToStr(CevirilecekSayi),a+1,2)) = 1 then Parca := UcluyuCevir(StrToInt(Copy(FloatToStr(CevirilecekSa yi),a+1,2)+'0')) else Parca := UcluyuCevir(StrToInt(Copy(FloatToStr(CevirilecekSa yi),a+1,2))); if Parca <> '' then Parca := ' and ' + Parca + ' cent'; end; if Yazi <> '' then Result := Yazi + ' Euro' + Parca; if Yazi = '' then begin Delete(Parca,1,5); Result := Parca; end; end; |
|
|
|
![]() |
| Bu konunun kısa yolunu aşağıdaki sitelere ekleyebilirsiniz! |
| Konu Araçları | |
| Stil | |
|
|