Programalama > DELPHI

Etiketler: sayi, okuma

Ort. 0
Puan ver:
function SayiOku(Sayi:String; Bosluk:Boolean=False):String;
  // Bu fonksiyon -fatihçopur- tarafından yazılmıştır (Made in Turkiye)
  // girilen 36 basamaklı sayının okunuşunu döndürür
var
  Basamak:Array[0..2] of Byte;
  i,j:Byte;
  BoslukStr,Birler,Yuzler,Boluk,UBSayi,UBSayiOkunusu:String;
Begin
  if Bosluk then BoslukStr:=' ' else BoslukStr:='';
  Birler := '     bir  iki  üç   dört beş  altı yedi sekizdokuz';
  Sayi := Stringofchar('0',36 - Length(Sayi)) + Sayi;
  for i := 0 to 11 do begin
    UBSayi := copy(Sayi, 3 * i + 1, 3); UBSayiOkunusu := '';
    if ((i <> 10) or (UBSayi <> '001')) and (UBSayi <> '000') then begin
      for j := 0 to 2 do Basamak[j] := strtoint(copy(UBSayi, j + 1, 1));
      Yuzler := '';
      if Basamak[0] = 1 then
        Yuzler := BoslukStr + 'yüz'
      else if Basamak[0] > 1 then
        Yuzler := Trimright(BoslukStr + copy(Birler, 5 * Basamak[0] + 1, 5)) + BoslukStr + 'yüz';
      UBSayiOkunusu := Yuzler + Trimright(BoslukStr + copy('      on    yirmi otuz  kırk  elli  altmışyetmişseksendoksan', 6 * Basamak[1] + 1, 6)) + Trimright(BoslukStr + copy(Birler, 5 * Basamak[2] + 1, 5));
    end;
    if UBSayi = '000' then Boluk := '' else Boluk := TrimRight(BoslukStr + copy('desilyon  nonilyon  oktilyon  septilyon sekstilyonkentilyon katrilyon trilyon   milyar    milyon    bin                 ', 10 * i + 1, 10)); // sekstilyon yerine hekstilyon da kullanılabilir.
    result := Trimleft(result + UBSayiOkunusu + Boluk);
  end;
end;


Yorumlar                 Yorum Yaz
Bu hazır kod'a ilk yorumu siz yapın!
KATEGORİLER
ASP - 240
ASP.NET - 24
C# - 75
C++ - 174
CGI - 8
DELPHI - 247
FLASH - 49
HTML - 536
PASCAL - 246
PERL - 11
PHP - 160
WML - 9
XML - 2
Copyright © 2002 - 2024 Hazır Kod - Tüm Hakları Saklıdır.
Siteden yararlanırken gizlilik ilkelerini okumanızı tavsiye ederiz.
hazirkod.com bir İSOBİL projesidir.