|
|
|
function NumStr1(l2:integer;fl1:boolean):string; | |
Skl:= 2; | |
Case l2 of | |
100:NumStr1:= 'сто '; | |
200:NumStr1:= 'двести '; | |
300:NumStr1:= 'триста '; | |
400:NumStr1:= 'четыреста '; | |
500:NumStr1:= 'пятьсот '; | |
600:NumStr1:= 'шестьсот '; | |
700:NumStr1:= 'семьсот '; | |
800:NumStr1:= 'восемьсот '; | |
900:NumStr1:= 'девятьсот '; | |
11:NumStr1:= 'одиннадцать '; | |
12:NumStr1:= 'двенадцать '; | |
13:NumStr1:= 'тринадцать '; | |
14:NumStr1:= 'четырнадцать '; | |
15:NumStr1:= 'пятнадцать '; | |
16:NumStr1:= 'шестнадцать '; | |
17:NumStr1:= 'семнадцать '; | |
18:NumStr1:= 'восемнадцать '; | |
19:NumStr1:= 'девятнадцать '; | |
20:NumStr1:= 'двадцать '; | |
30:NumStr1:= 'тридцать '; | |
40:NumStr1:= 'сорок '; | |
50:NumStr1:= 'пятьдесят '; | |
60:NumStr1:= 'шестьдесят '; | |
70:NumStr1:= 'семьдесят '; | |
80:NumStr1:= 'восемьдесят '; | |
90:NumStr1:= 'девяносто '; | |
1:begin | |
Skl:= 0; | |
If fl1 Then | |
begin | |
NumStr1:= 'один '; | |
end | |
Else | |
begin | |
NumStr1:= 'одна '; | |
end; | |
end; | |
2:begin | |
Skl:= 1; | |
If fl1 Then | |
begin | |
NumStr1:= 'два '; | |
end | |
Else | |
begin | |
NumStr1:= 'две '; | |
end; | |
end; | |
3:begin | |
Skl:= 1; | |
NumStr1:= 'три '; | |
end; | |
4:begin | |
Skl:= 1; | |
NumStr1:= 'четыре '; | |
end; | |
5:NumStr1:= 'пять '; | |
6:NumStr1:= 'шесть '; | |
7:NumStr1:= 'семь '; | |
8:NumStr1:= 'восемь '; | |
9:NumStr1:= 'девять '; | |
10:NumStr1:= 'десять '; | |
end; | |
function NumStr2(l1:longint;fl:boolean):string; | |
SS1:= ''; | |
If l1 >= 100 Then | |
begin | |
SS1:= NumStr1((trunc(l1 / 100) * 100), fl); | |
l1:= l1 Mod 100; | |
end; | |
If l1 >= 20 Then | |
begin | |
SS1:= SS1+NumStr1((trunc(l1 / 10) * 10), fl); | |
l1:= l1 Mod 10; | |
end; | |
NumStr2:= SS1+NumStr1(l1, fl); | |
function numtoslov(l:longint):string; | |
s:string; | |
S:= ''; | |
If l < 0 Then | |
begin | |
l:= Abs(l); | |
S:= 'минус '; | |
end; | |
If l > 1000000000 Then | |
begin | |
S:= S+NumStr2(trunc(l / 1000000000), True); | |
Case Skl of | |
0:S:= S+'миллиард '; | |
1:S:= S+'миллиарда '; | |
2:S:= S+'миллиардов '; | |
end; | |
l:= l Mod 1000000000; | |
end; | |
If l > 1000000 Then | |
begin | |
S:= S+NumStr2(trunc(l / 1000000), True); | |
Case Skl of | |
0:S:= S+'миллион '; | |
1:S:= S+'миллиона '; | |
2:S:= S+'миллионов '; | |
end; | |
l:= l Mod 1000000; | |
end; | |
If l > 1000 Then | |
begin | |
S:= S+NumStr2(trunc(l / 1000), false); | |
Case Skl of | |
0:S:= S+'тысяча '; | |
1:S:= S+'тысячи '; | |
2:S:= S+'тысяч '; | |
end; | |
l:= l Mod 1000; | |
end; | |
If l > 0 Then | |
begin | |
S:= S+NumStr2(l, True); | |
end; | |
If S= '' Then | |
begin | |
S:= 'ноль '; | |
end; | |
if l9=1000 then S:='одна тысяча'; | |
numtoslov:= (copy(S, 1, 1)) + copy(S, 2, Length(S) - 1); | |
function dzero(zz:string):string; | |
if length(zz)=1 then zz:='0'+zz; | |
function babkitostr(b:real):string; | |
i7:integer; | |
i1,i,i8:integer; | |
s1,s2:string; | |
if b<0 then i8:=trunc(-b) else i8:=trunc(b); | |
if (i8 mod 100) <> 11 then | |
case (i8 mod 10) of | |
1:s1:='рубль'; | |
2,3,4:s1:='рубля'; | |
end; | |
i7:=round((i/100-round(i/100))*100); | |
if (i7>=12)and(i7<=14) then s1:='рублей'; | |
begin | |
suba:=Format('%10.2f',[b]); | |
if (copy(suba,length(suba)-2,1)=',')or(copy(suba,length(suba)-2,1)='.') then i1:=strtoint(copy(suba,length(suba)-1,2)); | |
if (copy(suba,length(suba)-1,1)=',')or(copy(suba,length(suba)-1,1)='.') then i1:=strtoint(copy(suba,length(suba),1)+'0'); | |
end; | |
if (i1 mod 100) <> 11 then | |
case (i1 mod 10) of | |
1:s2:='копейка'; | |
2,3,4:s2:='копейки'; | |
end; | |
babka:=numtoslov(round(i))+' '+s1+' '+dzero(inttostr(round(i1)))+' '+s2; | |
babkitostr:=AnsiUpperCase(babka[1])+copy(babka,2,length(babka)-1); | |
procedure TForm1.Button1Click(Sender: TObject); | |