Sayıyı Yazıya Çevimr İşlemi İçin Yardım
-
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.
-
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;
-
arkadaşlar başka cevap verecek yok mu ? okulu bu yıl bitirmeliyim.
-
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 :|
-
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; -
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.