folder Tahribat.com Forumları
linefolder Delphi - Pascal
linefolder Sayıyı Yazıya Çevimr İşlemi İçin Yardım



Sayıyı Yazıya Çevimr İşlemi İçin Yardım

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Dark_Lord
    Dark_Lord's avatar
    Kayıt Tarihi: 23/Ağustos/2005
    Erkek

    Merhaba arkadaşlar benim bir sorum vardı;

    1)Delphi'de edit'e girilen 5 haneye kadar olan sayıları yazıya çeviren delphi programı için yardımlarınıza ihtiyacım var.

    2)iki string değeri birleştirip yazdırma işlemini delphi de nasıl yaparım.

    Sevgilerimle,şimdiden sağolun.


    "biz televizyon izleyerek, milyonerler, sinema tanrıları, rock yıldızları olacağımıza inanarak büyüdük ama olamayacağız... hepimiz heba oluyoruz... bütün bir nesil benzin pompalıyor, garsonluk yapıyor ya da beyaz yakalı köle olmuş... reklamlar yüzünden araba ve kıyafet peşindeyiz... nefret ettiğimiz işlerde çalışıyor, gereksiz şeyler alıyoruz..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DarkSkull
    DarkSkull's avatar
    Kayıt Tarihi: 17/Aralık/2008
    Erkek

    Yüksekokulda öyle bir proje yapmıştım. Sesli okuyordu aynı zamanda. Bulursam kodları yollarım sana. 2 string'i delphi'de birleştirmek için araya + koymak yeterli.

    Edit1.Text := string1 + string2;

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Dark_Lord
    Dark_Lord's avatar
    Kayıt Tarihi: 23/Ağustos/2005
    Erkek
    arkadaşlar başka cevap verecek yok mu ? okulu bu yıl bitirmeliyim.

    "biz televizyon izleyerek, milyonerler, sinema tanrıları, rock yıldızları olacağımıza inanarak büyüdük ama olamayacağız... hepimiz heba oluyoruz... bütün bir nesil benzin pompalıyor, garsonluk yapıyor ya da beyaz yakalı köle olmuş... reklamlar yüzünden araba ve kıyafet peşindeyiz... nefret ettiğimiz işlerde çalışıyor, gereksiz şeyler alıyoruz..
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    renegadealien
    renegadealien's avatar
    Üstün Hizmet Madalyası Savaş Madalyası Başarı Madalyası Üstün Hizmet Madalyası Developer Madalyası
    Kayıt Tarihi: 23/Mart/2003
    Erkek

    Hocam arkadaş yazmışya işte

     

    Edit1.Text := string1 + string2; 

    string1:= "haydar";

    string2:= "ali";

     

    Edit1.text := string1+ " " + string2;

    edit1 in içeriği haydar ali olacaktır...

     

    daha ne istiyosun :|


    Sanıyorum kendi atasözümü yaptım, kaynak belirterek kullanabilirsiniz. 10.05.2013 tarihli google arama sonucu : Aradığınız - "herşeyin hayırlısı rampanın bayırlısı" - ile ilgili hiçbir arama sonucu mevcut değil. Not : Söyleyeni belli olduğu için(Ben) atasözü değil, özlüsöz oluyormuş, dolayısı ile kendi özlüsözümü yapmış oldum :)
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Cosmic
    Cosmic's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
    function Cevir(Val : extended) : String;
    const
      hanex : array[0..2, '0'..'9'] of String = (
        ('', 'Bir ', 'İki ', 'Üç ', 'Dört ', 'Beş ', 'Altı ', 'Yedi ', 'Sekiz ', 'Dokuz '),
        ('', 'On ', 'Yirmi ', 'Otuz ', 'Kırk ', 'Elli ', 'Atmış ', 'Yetmiş ', 'Seksen ', 'Doksan '),
        ('', 'Yüz ', 'İki Yüz ', 'Üç Yüz ', 'Dört Yüz ', 'Beş Yüz ', 'Altı Yüz ', 'Yedi Yüz ', 'Sekiz Yüz ', 'Dokuz Yüz '));
      katx : array[0..5] of String = ('', 'Bin ', 'Milyon ', 'Milyar ', 'Trilyon ', 'Katrilyon ');
    var
      Kat : Integer;
    function _Cevir(sy : String) : String;
    var
      lsy, hn : Integer;
    begin
      Result := ''; if sy = '' then Exit;
      if (sy = '1') and (kat = 1) then begin Result := 'Bin'; Exit; end;
      hn := 0; lsy := length(sy);
      while (hn < 3) and (hn < lsy)
      do
        begin
          Result := hanex[hn, sy[lsy - hn]] + Result;
          Inc(hn);
        end;
      Result := Result + katx[kat];
      Inc(kat);
      if lsy > 3 then Result := _Cevir(copy(sy, 1, lsy - 3)) + Result;
    end;
    begin
      Result := ''; kat := 0;
      Result := _Cevir(formatFloat('##0', int(Val)));
    end;

    Bittik biz bittik
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DarkSkull
    DarkSkull's avatar
    Kayıt Tarihi: 17/Aralık/2008
    Erkek

    Arkadaşa özel mesaj ile yazdım burada da bulunsun lazım olan olur belki.

    Sayıyı yazıya çevirmek mantık olarak zor değil. 4-5 dizi yapacaksın. Aşağıdaki gibi olabilir mesela
    birler=["","bir","iki","üç","dört","beş","altı","yedi",...]
    onlar=["","on","yirmi","otuz",...]

    Bu şekilde diziler oluşturacaksın. Sayıyı 1'ler basamağı, 10'lar basamağı şeklinde ayırman gerek. Stringe çevirip sağdan 1 karakter 1 karakter alabilirsin. En sağdakini birler'den çevirirsin. Diğerini onlar'dan o şekilde gider. Mesela a değişkenine birler basamağını attın. birler[a] dersen yazı karşılığı gelir.

    Basamak bulma işinin farklı yolu da var. Stringe çevirmezsin. 1000'e bölersin 1000'ler basamağını bulursun. Sonra 1000'e bölünmüş halini 100'e bölersin 100'ler basamağını bulursun. Bu şekilde istediğin kadar basamak bulabilirsin. Değişik mantıklar düşünerek en kısa ve sayı büyüdüğünde ek işlem yapmayı gerektirmeyecek hale getirilebilir.

Toplam Hit: 2876 Toplam Mesaj: 6