Mega Code Archive

 
Categories / Delphi / Examples
 

Sayıları türkçe okumak için en kisa kod, en hızlı, güvenilir-denenmiş

Şu ana kadar birçok kod gördüm bu konuda yazılan ama çok uzun ve gereksiz işlemler yaptırmışlar. Programın boyunutunu arttırdığı gibi hızınıda düşürmek istemiyorsanız aşağıdaki kodu bir deneyin... Umarım işinize yarar. (BİLGİ PAYLAŞTIKÇA GÜZELDİR!!!) Türkcan Kaan FİDAN. {**************************************************** Name : RakamaCevir function Using : RakamaCevir(Sayi:Double) Copyright : Türkcan Kaan FİDAN Date : 15.02.2000 ****************************************************} function RakamaCevir(Sayi: Double):String ; const birler: array[1..9] of string = ('BİR','İKİ','ÜÇ','DÖRT','BEŞ','ALTI','YEDİ','SEKİZ','DOKUZ'); onlar : array[1..9] of string = ('ON','YİRMİ','OTUZ','KIRK','ELLİ','ALTMIŞ','YETMİŞ','SEKSEN','DOKSAN'); katlar: array[1..6] of string = ('YÜZ','BİN','MİLYON','MİLYAR','TRİLYON','KATRİLYON'); // dahada arttırılabilir... var Rakam: string; Bolum, Sonuc, b : double; Kat: integer; begin for Kat := 6 downto 1 do begin bolum := int(Sayi/Power(1000,Kat-1)); b := bolum ; if bolum <> 0 then begin if bolum>199 then begin sonuc := Int(bolum / 100); rakam := rakam+birler[Trunc(sonuc)]; bolum := bolum-sonuc*100 ; rakam := rakam+katlar[1]; end; if (bolum>99) and (bolum <= 199) then begin rakam := rakam+katlar[1]; bolum := bolum-100; end; if (bolum>9) and (bolum <= 99) then begin sonuc := int(bolum/10); rakam := rakam+onlar[Trunc(sonuc)]; bolum := int(bolum-sonuc*10); end; if (bolum>0) and (bolum<=9) then if (Sayi>1999) or (Sayi<1000) then rakam := rakam + birler[trunc(bolum)]; if Kat <> 1 then rakam := rakam+katlar[Kat]+' '; // 5-4-3-2-1 Sayi := Sayi-(b*power(1000,Kat-1)); end; end; RakamaCevir := Rakam; end; örnek : label1.caption := 'Yalnız '+RakamaCevir( Query2ODEMETUTARI.Value )+ ' TL dir';